Problem/Motivation
Core's Archiver subsystem is deprecated in drupal:11.3.0 and removed from drupal:12.0.0 with no replacement (change record 3556927). Webform still injects its plugin manager, so on Drupal 12 the container cannot be built at all:
Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: The service "webform_submission.exporter" has a dependency on a non-existent service "plugin.manager.archiver"
That is a hard failure rather than a deprecation notice: every kernel test that installs webform dies during container build, and a site on Drupal 12 would not boot with webform enabled.
Steps to reproduce
Install webform 6.3.x against Drupal 12 (core 12.0.x-dev) and boot anything that builds the container, for example run any kernel test that enables webform.
Proposed resolution
Drop the dependency. It appears to be unused: in both places the manager is assigned to a property and no method is ever called on it.
webform.services.ymlline 89 passes@plugin.manager.archiveras the fifth argument towebform_submission.exporter.src/WebformSubmissionExporter.phpimportsDrupal\Core\Archiver\ArchiverManager, type-hints it in the constructor and stores it in$this->archiverManager(line 149). There is no other reference to that property in the class.modules/webform_devel/src/Form/WebformDevelEntityFormApiBaseForm.phpline 61 does$instance->archiverManager = $container->get('plugin.manager.archiver')and likewise never calls it.
Removing a constructor argument is technically an API change, so 6.3.x may prefer to keep the parameter and default it to NULL rather than drop it outright.
Remaining tasks
Confirm the property really is unused across the branch, then remove the service argument, the constructor parameter or its default, the property and the import.
User interface changes
None.
API changes
The constructor signature of WebformSubmissionExporter changes if the argument is dropped rather than defaulted.
Found while testing another module against core 12: patching webform with the MR from #3618362: Align definitions of getSortedDefinitions and getGroupedDefinitions with core cleared the getGroupedDefinitions() signature fatals and let this one through. Related to #3578701: Remove \Archive_Tar dependency in favor of PharData, which removes the abandoned pear/archive_tar package; this is core's plugin.manager.archiver service, a separate dependency.
AI-Generated: Yes (Claude Code was used to help draft this issue summary. No patch is attached. The failure was observed on a real Drupal 12 pipeline, and I verified the two call sites and the absence of any method call on the property.)
Issue fork webform-3618665
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
mably commentedComment #4
mably commentedComment #5
mably commentedVerified against Drupal 12. I applied this MR's diff to webform 6.3.0 as a Composer patch on the next-major CI lane of the Personal Data Vault module, and ran that module's whole suite against core 12.x-dev (dev-main, b1b76c0).
Without it, Drupal 12 removes plugin.manager.archiver, so webform_submission.exporter cannot be constructed and every test that boots webform dies while the container is built. With it applied the suite is green: 436 tests pass, 0 failures, 0 errors.
Two things that may help this land. The diff applies cleanly to released 6.3.0, so it needs no rebase to test. And because it only removes an injected service that nothing in the class actually reads, it uses no Drupal 11.2-only API and is safe across the whole ^10.3 || ^11 range this branch supports.
Evidence: https://git.drupalcode.org/project/pdv/-/jobs/11717269
AI-Generated: Yes (Claude Code was used to help draft this comment and to write the merge request. I reviewed both, and the Drupal 12 test run referenced above is a real CI job whose log is linked.)