I got this error in a Symfony custom console command:
ErrorException: Warning: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time in <PROJECT_DIR>/backend/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFile
The error was generated by a Doctrine ORM query and the problem is repeatable.
First things first, I suggested to update Symfony from 4.4.2 version to 4.4.20, but it doesn't seem doable in the short term.
I found this issue on Symfony project's git:
but I cannot find a doctrine listener in my code that use SessionInterface, so I'm in a dead end.
Do you have any ideas how I can fix this console command without rewrite all from scratch?
This is the stacktrace:
ErrorException: Warning: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time in <PROJECT_DIR>/backend/vendor/symfony/http-foundation/Session/Storage/Handler/NativeFile
SessionHandler.php:52 Stack trace:
#0 <PROJECT_DIR>/backend/var/cache/prod/Container0iTkVVw/srcApp_KernelProdDebugContainer.php(1367): Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler->__construct('<PROJECT_DIR>...')
#1 <PROJECT_DIR>/backend/var/cache/prod/Container0iTkVVw/srcApp_KernelProdDebugContainer.php(1823): Container0iTkVVw\srcApp_KernelProdDebugContainer->getSessionService()
#2 <PROJECT_DIR>/backend/vendor/symfony/dependency-injection/Container.php(444): Container0iTkVVw\srcApp_KernelProdDebugContainer->getApp_Context_ListenerService()
#3 <PROJECT_DIR>/backend/vendor/symfony/dependency-injection/Argument/ServiceLocator.php(40): Symfony\Component\DependencyInjection\Container->getService('privates', 'app.context.lis...', 'getApp_Context_...', false)
#4 <PROJECT_DIR>/backend/vendor/symfony/doctrine-bridge/ContainerAwareEventManager.php(136): Symfony\Component\DependencyInjection\Argument\ServiceLocator->get('app.context.lis...')
#5 <PROJECT_DIR>/backend/vendor/symfony/doctrine-bridge/ContainerAwareEventManager.php(74): Symfony\Bridge\Doctrine\ContainerAwareEventManager->initializeListeners('prePersist')
#6 <PROJECT_DIR>/backend/vendor/gedmo/doctrine-extensions/lib/Gedmo/SoftDeleteable/Filter/SoftDeleteableFilter.php(95): Symfony\Bridge\Doctrine\ContainerAwareEventManager->getListeners()
#7 <PROJECT_DIR>/backend/vendor/gedmo/doctrine-extensions/lib/Gedmo/SoftDeleteable/Filter/SoftDeleteableFilter.php(51): Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter->getListener()
#8 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php(508): Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter->addFilterConstraint(Object(Doctrine\ORM\Mapping\ClassMetadata), 'm0_')
#9 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php(1786): Doctrine\ORM\Query\SqlWalker->generateFilterConditionSQL(Object(Doctrine\ORM\Mapping\ClassMetadata), 'm0_')
#10 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php(526): Doctrine\ORM\Query\SqlWalker->walkWhereClause(Object(Doctrine\ORM\Query\AST\WhereClause))
#11 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Exec/SingleSelectExecutor.php(42): Doctrine\ORM\Query\SqlWalker->walkSelectStatement(Object(Doctrine\ORM\Query\AST\SelectStatement))
#12 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php(278): Doctrine\ORM\Query\Exec\SingleSelectExecutor->__construct(Object(Doctrine\ORM\Query\AST\SelectStatement), Object(Doctrine\ORM\Query\SqlWalker))
#13 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(399): Doctrine\ORM\Query\SqlWalker->getExecutor(Object(Doctrine\ORM\Query\AST\SelectStatement))
#14 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(286): Doctrine\ORM\Query\Parser->parse()
#15 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(298): Doctrine\ORM\Query->_parse()
#16 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(992): Doctrine\ORM\Query->_doExecute()
#17 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(947): Doctrine\ORM\AbstractQuery->executeIgnoreQueryCache(NULL, 1)
#18 <PROJECT_DIR>/backend/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(750): Doctrine\ORM\AbstractQuery->execute(NULL, 1)
#19 <PROJECT_DIR>/backend/src/Repository/MemberRepository.php(320): Doctrine\ORM\AbstractQuery->getResult()
#20 <PROJECT_DIR>/backend/src/Services/SyncActiveCampaignManager.php(604): App\Repository\MemberRepository->findByExtactFiscalCode('XXXXXXXXXXXXXXX...')
#21 <PROJECT_DIR>/backend/src/Services/SyncActiveCampaignManager.php(565): App\Services\SyncActiveCampaignManager->syncSingleACContacts(Array, Array)
#22 <PROJECT_DIR>/backend/src/Command/SyncActiveCampaignCommand.php(118): App\Services\SyncActiveCampaignManager->syncExistingACContacts(Array, Array, 10)
#23 <PROJECT_DIR>/backend/vendor/symfony/console/Command/Command.php (251): App\Command\SyncActiveCampaignCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 <PROJECT_DIR>/backend/vendor/symfony/console/Application.php(904): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 <PROJECT_DIR>/backend/vendor/symfony/framework-bundle/Console/Application.php(89): Symfony\Component\Console\Application->doRunCommand(Object(App\Command\SyncActiveCampaignCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 <PROJECT_DIR>/backend/vendor/symfony/console/Application.php(262): Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand(Object(App\Command\SyncActiveCampaignCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 <PROJECT_DIR>/backend/vendor/symfony/framework-bundle/Console/Application.php(75): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 <PROJECT_DIR>/backend/vendor/symfony/console/Application.php(145): Symfony\Bundle\FrameworkBundle\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#29 <PROJECT_DIR>/backend/bin/console(39): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput))
#30 {main} [] []