Since symfony/dependency-injection 7.2: Type "tagged" is deprecated for tag <argument>, use "tagged_iterator" instead in "/var/www/dossierc2e-preprod-electra/vendor/consoneo/job-queue-bundle/DependencyInjection/../Resources/config/console.xml".
Consoneo\Bundle\ExclusiveAppBundle\Controller\ParticulierController::preEnregistrement(): Implicitly marking parameter $justificatif as nullable is deprecated, the explicit nullable type must be used instead
Consoneo\Bundle\ExclusiveAppBundle\Controller\ProjectBundle\ProjectBundleController::to_beneficiary_info(): Implicitly marking parameter $projectBundle as nullable is deprecated, the explicit nullable type must be used instead
Consoneo\Bundle\ExclusiveAppBundle\Controller\SimulationController::simulateur(): Implicitly marking parameter $jpe as nullable is deprecated, the explicit nullable type must be used instead
Consoneo\Bundle\ExclusiveAppBundle\Controller\SimulationController::resultatPrime(): Implicitly marking parameter $justificatif as nullable is deprecated, the explicit nullable type must be used instead
The "Lexik\Bundle\JWTAuthenticationBundle\Security\Http\Authentication\AuthenticationSuccessHandler" class is considered final. It may change without further notice as of its next major version. You should not extend it from "Consoneo\Bundle\ObligeBundle\Security\JwtAuthenticationSuccessHandler".
Consoneo\Bundle\UserBundle\Entity\ParticulierUserContact::setCas1(): Implicitly marking parameter $cas1 as nullable is deprecated, the explicit nullable type must be used instead
Consoneo\Bundle\WorkflowBundle\Event\Document\FactureValidationEvent::__construct(): Optional parameter $soldePrevisionnel declared before required parameter $soldeReference is implicitly treated as a required parameter
The "Symfony\Component\Security\Core\Role\Role" class is considered internal. It may change without further notice. You should not use it from "Consoneo\Bundle\UserBundle\Entity\ObligeRole".
The "Doctrine\ODM\MongoDB\Mapping\Attribute\Id" class is considered final. It may change without further notice as of its next major version. You should not extend it from "Doctrine\ODM\MongoDB\Mapping\Annotations\Id".
The "Doctrine\ODM\MongoDB\Mapping\Attribute\Field" class is considered final. It may change without further notice as of its next major version. You should not extend it from "Doctrine\ODM\MongoDB\Mapping\Annotations\Field".
The "Doctrine\ODM\MongoDB\Mapping\Attribute\EmbedMany" class is considered final. It may change without further notice as of its next major version. You should not extend it from "Doctrine\ODM\MongoDB\Mapping\Annotations\EmbedMany".
The "Doctrine\ODM\MongoDB\Mapping\Attribute\EmbedOne" class is considered final. It may change without further notice as of its next major version. You should not extend it from "Doctrine\ODM\MongoDB\Mapping\Annotations\EmbedOne".
The "Doctrine\ODM\MongoDB\Mapping\Attribute\ReferenceMany" class is considered final. It may change without further notice as of its next major version. You should not extend it from "Doctrine\ODM\MongoDB\Mapping\Annotations\ReferenceMany".
User Deprecated: Class "Doctrine\ORM\Proxy\Autoloader" is deprecated. Use native lazy objects instead. (Autoloader.php:74 called by DoctrineBundle.php:136, https://github.com/doctrine/orm/pull/12005, package doctrine/orm)
Deprecated: Consoneo\Bundle\EcoffreFortBundle\Event\PutEvent::__construct(): Optional parameter $safeRoom declared before required parameter $retour is implicitly treated as a required parameter
Deprecated: Consoneo\Bundle\EcoffreFortBundle\Event\PutEvent::__construct(): Optional parameter $targetDir declared before required parameter $retour is implicitly treated as a required parameter
Deprecated: Consoneo\Bundle\EcoffreFortBundle\Event\QueryEvent::__construct(): Optional parameter $safeRoom declared before required parameter $codeRetour is implicitly treated as a required parameter
Deprecated: Consoneo\Bundle\EcoffreFortBundle\Event\QueryEvent::__construct(): Optional parameter $iua declared before required parameter $codeRetour is implicitly treated as a required parameter
User Deprecated: The "JMS\JobQueueBundle\Entity\Type\SafeObjectType" class extends "Doctrine\DBAL\Types\ObjectType" that is deprecated Use {@link JsonType} instead.
User Deprecated: Version detection logic for MySQL will change in DBAL 4. Please specify the version as the server reports it, e.g. "8.0.31" instead of "8". (AbstractMySQLDriver.php:94 called by AbstractDriverMiddleware.php:68, https://github.com/doctrine/dbal/pull/5779, package doctrine/orm)
"SELECT t0.id AS id_1, t0.email AS email_2, t0.enabled AS enabled_3, t0.salt AS salt_4, t0.password AS password_5, t0.last_login AS last_login_6, t0.confirmation_token AS confirmation_token_7, t0.password_requested_at AS password_requested_at_8, t0.roles AS roles_9, t0.username AS username_10, t0.nom AS nom_11, t0.prenom AS prenom_12, t0.fonction AS fonction_13, t0.tel AS tel_14, t0.mobile AS mobile_15, t0.activation AS activation_16, t0.createdAt AS createdAt_17, t0.updatedAt AS updatedAt_18, t0.optin AS optin_19, t0.dateActivation AS dateActivation_20, t0.emailValidatedDateTime AS emailValidatedDateTime_21, t0.emailCreatedDateTime AS emailCreatedDateTime_22, t0.mobileCreatedDatetime AS mobileCreatedDatetime_23, t0.sendEmail AS sendEmail_24, t0.scope AS scope_25, t0.isArchived AS isArchived_26, t0.import AS import_27, t0.email_canonical AS email_canonical_28, t0.username_canonical AS username_canonical_29, t0.oblige_id AS oblige_id_30 FROM ObligeUser t0 WHERE t0.id = ?"
(parameters:
[1 => 44]
, types:
[1 => 1]
)
doctrine
[
"sql" => "SELECT t0.id AS id_1, t0.email AS email_2, t0.enabled AS enabled_3, t0.salt AS salt_4, t0.password AS password_5, t0.last_login AS last_login_6, t0.confirmation_token AS confirmation_token_7, t0.password_requested_at AS password_requested_at_8, t0.roles AS roles_9, t0.username AS username_10, t0.nom AS nom_11, t0.prenom AS prenom_12, t0.fonction AS fonction_13, t0.tel AS tel_14, t0.mobile AS mobile_15, t0.activation AS activation_16, t0.createdAt AS createdAt_17, t0.updatedAt AS updatedAt_18, t0.optin AS optin_19, t0.dateActivation AS dateActivation_20, t0.emailValidatedDateTime AS emailValidatedDateTime_21, t0.emailCreatedDateTime AS emailCreatedDateTime_22, t0.mobileCreatedDatetime AS mobileCreatedDatetime_23, t0.sendEmail AS sendEmail_24, t0.scope AS scope_25, t0.isArchived AS isArchived_26, t0.import AS import_27, t0.email_canonical AS email_canonical_28, t0.username_canonical AS username_canonical_29, t0.oblige_id AS oblige_id_30 FROM ObligeUser t0 WHERE t0.id = ?"
"params" => [1 => 44]
"types" => [1 => 1]
]
deprecation
User Deprecated: Since symfony/var-exporter 7.3: Using ProxyHelper::generateLazyGhost() is deprecated, use native lazy objects instead.
User Deprecated: Since symfony/var-exporter 7.3: The "Symfony\Component\VarExporter\LazyGhostTrait" trait is deprecated, use native lazy objects instead.
Deprecated: Consoneo\Bundle\ObligeBundle\Entity\StatRecord::setStat(): Implicitly marking parameter $stat as nullable is deprecated, the explicit nullable type must be used instead
[
"command" => "/usr/local/bin/composer"
"version_output" => """
Running 2.8.12 (2025-09-19 13:41:59) with PHP 8.4.14 on Linux / 6.14.0-1016-aws\nComposer version 2.8.12 2025-09-19 13:41:59\nPHP version 8.4.14 ()\nRun the "diagnose" command to get more detailed diagnostics output.
"""
]
"SELECT t0.id AS id_1, t0.username_canonical AS username_canonical_2, t0.email AS email_3, t0.email_canonical AS email_canonical_4, t0.enabled AS enabled_5, t0.salt AS salt_6, t0.password AS password_7, t0.last_login AS last_login_8, t0.confirmation_token AS confirmation_token_9, t0.password_requested_at AS password_requested_at_10, t0.roles AS roles_11, t0.username AS username_12, t0.nom AS nom_13, t0.prenom AS prenom_14, t0.fonction AS fonction_15, t0.tel AS tel_16, t0.mobile AS mobile_17, t0.activation AS activation_18, t0.createdAt AS createdAt_19, t0.updatedAt AS updatedAt_20, t0.optin AS optin_21, t0.dateActivation AS dateActivation_22, t0.emailValidatedDateTime AS emailValidatedDateTime_23, t0.emailCreatedDateTime AS emailCreatedDateTime_24, t0.mobileCreatedDatetime AS mobileCreatedDatetime_25, t0.sendEmail AS sendEmail_26, t0.reference AS reference_27, t0.currentSubscriptionStep AS currentSubscriptionStep_28, t0.dateRetourContratPartenariat AS dateRetourContratPartenariat_29, t0.token AS token_30, t0.dateActivationStep2 AS dateActivationStep2_31, t0.dateActivationStep4 AS dateActivationStep4_32, t0.dateActivationStep5 AS dateActivationStep5_33, t0.dateRefused AS dateRefused_34, t0.emailRequested AS emailRequested_35, t0.emailRequestedDate AS emailRequestedDate_36, t0.attributes AS attributes_37, t0.lastOffreDate AS lastOffreDate_38, t0.quicklyTraited AS quicklyTraited_39, t0.proType AS proType_40, t0.system_facturation AS system_facturation_41, t0.signataireAh AS signataireAh_42, t0.inscription_step AS inscription_step_43, t0.import_status AS import_status_44, t0.token_thermor AS token_thermor_45, t0.exclusiveEnabled AS exclusiveEnabled_46, t0.relanceSmsRegistration AS relanceSmsRegistration_47, t0.dateRelanceSmsRegistration AS dateRelanceSmsRegistration_48, t0.company_id AS company_id_49, t0.workflow_id AS workflow_id_50, t0.obligeTarget_id AS obligeTarget_id_51, t0.identite_id AS identite_id_52, t0.integrationModule_id AS integrationModule_id_53 FROM InstallateurUser t0 WHERE t0.id = ?"
(parameters:
[1 => "21970"
]
, types:
[1 => 1]
)
doctrine
[
"sql" => "SELECT t0.id AS id_1, t0.username_canonical AS username_canonical_2, t0.email AS email_3, t0.email_canonical AS email_canonical_4, t0.enabled AS enabled_5, t0.salt AS salt_6, t0.password AS password_7, t0.last_login AS last_login_8, t0.confirmation_token AS confirmation_token_9, t0.password_requested_at AS password_requested_at_10, t0.roles AS roles_11, t0.username AS username_12, t0.nom AS nom_13, t0.prenom AS prenom_14, t0.fonction AS fonction_15, t0.tel AS tel_16, t0.mobile AS mobile_17, t0.activation AS activation_18, t0.createdAt AS createdAt_19, t0.updatedAt AS updatedAt_20, t0.optin AS optin_21, t0.dateActivation AS dateActivation_22, t0.emailValidatedDateTime AS emailValidatedDateTime_23, t0.emailCreatedDateTime AS emailCreatedDateTime_24, t0.mobileCreatedDatetime AS mobileCreatedDatetime_25, t0.sendEmail AS sendEmail_26, t0.reference AS reference_27, t0.currentSubscriptionStep AS currentSubscriptionStep_28, t0.dateRetourContratPartenariat AS dateRetourContratPartenariat_29, t0.token AS token_30, t0.dateActivationStep2 AS dateActivationStep2_31, t0.dateActivationStep4 AS dateActivationStep4_32, t0.dateActivationStep5 AS dateActivationStep5_33, t0.dateRefused AS dateRefused_34, t0.emailRequested AS emailRequested_35, t0.emailRequestedDate AS emailRequestedDate_36, t0.attributes AS attributes_37, t0.lastOffreDate AS lastOffreDate_38, t0.quicklyTraited AS quicklyTraited_39, t0.proType AS proType_40, t0.system_facturation AS system_facturation_41, t0.signataireAh AS signataireAh_42, t0.inscription_step AS inscription_step_43, t0.import_status AS import_status_44, t0.token_thermor AS token_thermor_45, t0.exclusiveEnabled AS exclusiveEnabled_46, t0.relanceSmsRegistration AS relanceSmsRegistration_47, t0.dateRelanceSmsRegistration AS dateRelanceSmsRegistration_48, t0.company_id AS company_id_49, t0.workflow_id AS workflow_id_50, t0.obligeTarget_id AS obligeTarget_id_51, t0.identite_id AS identite_id_52, t0.integrationModule_id AS integrationModule_id_53 FROM InstallateurUser t0 WHERE t0.id = ?"
"params" => [1 => "21970"
]
"types" => [1 => 1]
]
deprecation
User Deprecated: The "Symfony\Component\Security\Core\Role\Role" class is considered internal. It may change without further notice. You should not use it from "Consoneo\Bundle\UserBundle\Entity\ObligeRole".
"SELECT t0.id AS id_1, t0.entrepriseUser_id AS entrepriseUser_id_2, t0.particulierUser_id AS particulierUser_id_3, t0.installateurUser_id AS installateurUser_id_4, t0.beUser_id AS beUser_id_5, t0.obligeUser_id AS obligeUser_id_6, t0.obligeRole_id AS obligeRole_id_7 FROM AffectationUser t0 WHERE t0.installateurUser_id IN (?)"
(parameters:
[1 => 21970]
, types:
[1 => 1]
)
doctrine
[
"sql" => "SELECT t0.id AS id_1, t0.entrepriseUser_id AS entrepriseUser_id_2, t0.particulierUser_id AS particulierUser_id_3, t0.installateurUser_id AS installateurUser_id_4, t0.beUser_id AS beUser_id_5, t0.obligeUser_id AS obligeUser_id_6, t0.obligeRole_id AS obligeRole_id_7 FROM AffectationUser t0 WHERE t0.installateurUser_id IN (?)"
"params" => [1 => 21970]
"types" => [1 => 1]
]
"SELECT t0.id AS id_1, t0.appKey AS appKey_2, t0.label AS label_3, t0.description AS description_4, t0.url AS url_5, t0.status AS status_6, t0.created_at AS created_at_7, t0.report_auto_email AS report_auto_email_8, t0.logo AS logo_9, t0.smartName AS smartName_10, t0.prefixEmail AS prefixEmail_11, t0.`lead` AS lead_12, t0.`leadUrl` AS leadUrl_13, t0.`leadLogin` AS leadLogin_14, t0.`leadPassword` AS leadPassword_15, t0.recommanderProDefault AS recommanderProDefault_16, t0.actif AS actif_17, t0.allowMultiSubscription AS allowMultiSubscription_18, t0.teteReseau_id AS teteReseau_id_19, t0.branding AS branding_20 FROM IntegrationModule t0 WHERE t0.id = ?"
(parameters:
[1 => 3768]
, types:
[1 => 1]
)
doctrine
[
"sql" => "SELECT t0.id AS id_1, t0.appKey AS appKey_2, t0.label AS label_3, t0.description AS description_4, t0.url AS url_5, t0.status AS status_6, t0.created_at AS created_at_7, t0.report_auto_email AS report_auto_email_8, t0.logo AS logo_9, t0.smartName AS smartName_10, t0.prefixEmail AS prefixEmail_11, t0.`lead` AS lead_12, t0.`leadUrl` AS leadUrl_13, t0.`leadLogin` AS leadLogin_14, t0.`leadPassword` AS leadPassword_15, t0.recommanderProDefault AS recommanderProDefault_16, t0.actif AS actif_17, t0.allowMultiSubscription AS allowMultiSubscription_18, t0.teteReseau_id AS teteReseau_id_19, t0.branding AS branding_20 FROM IntegrationModule t0 WHERE t0.id = ?"
"params" => [1 => 3768]
"types" => [1 => 1]
]
deprecation
Deprecated: Consoneo\Bundle\ObligeBundle\Entity\Lead::setIntegrationModule(): Implicitly marking parameter $integrationModule as nullable is deprecated, the explicit nullable type must be used instead
Deprecated: Consoneo\Bundle\UserBundle\Entity\ParticulierUserContact::setCas1(): Implicitly marking parameter $cas1 as nullable is deprecated, the explicit nullable type must be used instead
"SELECT t0.id AS id_1, t0.raison AS raison_2, t0.siret AS siret_3, t0.adresse AS adresse_4, t0.adresse_complement AS adresse_complement_5, t0.codepostal AS codepostal_6, t0.ville AS ville_7, t0.website AS website_8, t0.effectif AS effectif_9, t0.status AS status_10, t0.created_datetime AS created_datetime_11, t0.updated_datetime AS updated_datetime_12, t0.chantiersParMois AS chantiersParMois_13, t0.data AS data_14, t0.programmeValorisation AS programmeValorisation_15, t0.apartientProgrammeValorisation AS apartientProgrammeValorisation_16, t0.cgu AS cgu_17, t0.oldContract AS oldContract_18, t0.lastLogin AS lastLogin_19, t0.lastDemande AS lastDemande_20, t0.qualificationsRequested AS qualificationsRequested_21, t0.qualificationRequestDate AS qualificationRequestDate_22, t0.bd AS bd_23, t0.stationService AS stationService_24, t0.nbKit AS nbKit_25, t0.registreCommerceVille AS registreCommerceVille_26, t0.light AS light_27, t0.curseur AS curseur_28, t0.curseurMinClient AS curseurMinClient_29, t0.sendMailCEEValidated AS sendMailCEEValidated_30, t0.surveyAverage AS surveyAverage_31, t0.external_client_code AS external_client_code_32, t0.interestedByFinancialMpr AS interestedByFinancialMpr_33, t0.financialMpr AS financialMpr_34, t0.mprAcceptFunding AS mprAcceptFunding_35, t0.sienna_id AS sienna_id_36, t0.logoFileName AS logoFileName_37, t0.cachetFileName AS cachetFileName_38, t0.tvaNumber AS tvaNumber_39, t0.decennalResponsibility AS decennalResponsibility_40, t0.companyStatus AS companyStatus_41, t0.codeApe AS codeApe_42, t0.capital AS capital_43, t44.id AS id_45, t44.type AS type_46, t44.detail AS detail_47, t44.token AS token_48, t44.installateur_id AS installateur_id_49, t44.particulierUser_id AS particulierUser_id_50, t44.entrepriseUser_id AS entrepriseUser_id_51, t44.particulierUserContact_id AS particulierUserContact_id_52, t44.entrepriseUserContact_id AS entrepriseUserContact_id_53, t0.user_id AS user_id_54, t55.id AS id_56, t55.tel AS tel_57, t55.mobile AS mobile_58, t55.username AS username_59, t55.fonction AS fonction_60, t55.nom AS nom_61, t55.prenom AS prenom_62, t55.company_id AS company_id_63, t64.id AS id_65, t64.mode AS mode_66, t64.targetType AS targetType_67, t64.classic AS classic_68, t64.preca AS preca_69, t64.enable AS enable_70, t64.raiType AS raiType_71, t64.contractSignedElectronically AS contractSignedElectronically_72, t64.pro_signature_mandatory_outlay AS pro_signature_mandatory_outlay_73, t64.obligeTarget_id AS obligeTarget_id_74, t64.teteReseau_id AS teteReseau_id_75, t64.simulateur_id AS simulateur_id_76, t64.installateurTarget_id AS installateurTarget_id_77, t64.beTarget_id AS beTarget_id_78, t79.id AS id_80, t79.createdAt AS createdAt_81, t79.updatedAt AS updatedAt_82, t79.installateur_id AS installateur_id_83, t0.prestataireEffacement_id AS prestataireEffacement_id_84 FROM Installateur t0 LEFT JOIN PaymentMethod t44 ON t44.installateur_id = t0.id LEFT JOIN SignataireInstallateur t55 ON t55.company_id = t0.id LEFT JOIN AffectationConsoneoRule t64 ON t64.installateurTarget_id = t0.id LEFT JOIN installateur_certificall_config t79 ON t79.installateur_id = t0.id WHERE t0.id = ?"
(parameters:
[1 => 19412]
, types:
[1 => 1]
)
doctrine
[
"sql" => "SELECT t0.id AS id_1, t0.raison AS raison_2, t0.siret AS siret_3, t0.adresse AS adresse_4, t0.adresse_complement AS adresse_complement_5, t0.codepostal AS codepostal_6, t0.ville AS ville_7, t0.website AS website_8, t0.effectif AS effectif_9, t0.status AS status_10, t0.created_datetime AS created_datetime_11, t0.updated_datetime AS updated_datetime_12, t0.chantiersParMois AS chantiersParMois_13, t0.data AS data_14, t0.programmeValorisation AS programmeValorisation_15, t0.apartientProgrammeValorisation AS apartientProgrammeValorisation_16, t0.cgu AS cgu_17, t0.oldContract AS oldContract_18, t0.lastLogin AS lastLogin_19, t0.lastDemande AS lastDemande_20, t0.qualificationsRequested AS qualificationsRequested_21, t0.qualificationRequestDate AS qualificationRequestDate_22, t0.bd AS bd_23, t0.stationService AS stationService_24, t0.nbKit AS nbKit_25, t0.registreCommerceVille AS registreCommerceVille_26, t0.light AS light_27, t0.curseur AS curseur_28, t0.curseurMinClient AS curseurMinClient_29, t0.sendMailCEEValidated AS sendMailCEEValidated_30, t0.surveyAverage AS surveyAverage_31, t0.external_client_code AS external_client_code_32, t0.interestedByFinancialMpr AS interestedByFinancialMpr_33, t0.financialMpr AS financialMpr_34, t0.mprAcceptFunding AS mprAcceptFunding_35, t0.sienna_id AS sienna_id_36, t0.logoFileName AS logoFileName_37, t0.cachetFileName AS cachetFileName_38, t0.tvaNumber AS tvaNumber_39, t0.decennalResponsibility AS decennalResponsibility_40, t0.companyStatus AS companyStatus_41, t0.codeApe AS codeApe_42, t0.capital AS capital_43, t44.id AS id_45, t44.type AS type_46, t44.detail AS detail_47, t44.token AS token_48, t44.installateur_id AS installateur_id_49, t44.particulierUser_id AS particulierUser_id_50, t44.entrepriseUser_id AS entrepriseUser_id_51, t44.particulierUserContact_id AS particulierUserContact_id_52, t44.entrepriseUserContact_id AS entrepriseUserContact_id_53, t0.user_id AS user_id_54, t55.id AS id_56, t55.tel AS tel_57, t55.mobile AS mobile_58, t55.username AS username_59, t55.fonction AS fonction_60, t55.nom AS nom_61, t55.prenom AS prenom_62, t55.company_id AS company_id_63, t64.id AS id_65, t64.mode AS mode_66, t64.targetType AS targetType_67, t64.classic AS classic_68, t64.preca AS preca_69, t64.enable AS enable_70, t64.raiType AS raiType_71, t64.contractSignedElectronically AS contractSignedElectronically_72, t64.pro_signature_mandatory_outlay AS pro_signature_mandatory_outlay_73, t64.obligeTarget_id AS obligeTarget_id_74, t64.teteReseau_id AS teteReseau_id_75, t64.simulateur_id AS simulateur_id_76, t64.installateurTarget_id AS installateurTarget_id_77, t64.beTarget_id AS beTarget_id_78, t79.id AS id_80, t79.createdAt AS createdAt_81, t79.updatedAt AS updatedAt_82, t79.installateur_id AS installateur_id_83, t0.prestataireEffacement_id AS prestataireEffacement_id_84 FROM Installateur t0 LEFT JOIN PaymentMethod t44 ON t44.installateur_id = t0.id LEFT JOIN SignataireInstallateur t55 ON t55.company_id = t0.id LEFT JOIN AffectationConsoneoRule t64 ON t64.installateurTarget_id = t0.id LEFT JOIN installateur_certificall_config t79 ON t79.installateur_id = t0.id WHERE t0.id = ?"
"params" => [1 => 19412]
"types" => [1 => 1]
]
debug
Stored the security token in the session.
security
[
"key" => "_security_main"
]
deprecation
User Deprecated: Providing the property $indexes on Doctrine\ORM\Mapping\Table does not have any effect and will be removed in Doctrine ORM 4.0. Please use the Doctrine\ORM\Mapping\Index attribute instead. (Table.php:26 called by Certilink.php:14, https://github.com/doctrine/orm/pull/11357, package doctrine/orm)
Deprecated: Consoneo\Bundle\ObligeBundle\Entity\Stat::setObligeRole(): Implicitly marking parameter $obligeRole as nullable is deprecated, the explicit nullable type must be used instead