Compatibility
Generated by bun scripts/e2e/corpus-lane.ts from docs/compatibility.json. Two lanes write it: the
local lane drives each codebase on a drupflare site in wrangler dev, and the deployed lane drives
it on a Worker deployed to a Cloudflare account. verified means every capability passed in the
local lane at the pinned commit, and deployed means they also passed on a deployed Worker. A pass
is inline (answered inside the request), parked (answered through the park) or degraded
(answered with a recorded degradation); unsupported was refused with a reason, and unknown means
no run asserted it. The website fixtures page reads the same file by the same rule.
27 codebases: 3 deployed, 12 verified, 3 partial, 3 unsupported, 6 need an upgrade to Drupal 11, 0 pending.
Local Runs
| repository | commit | status | last run | install | container build | anon render | auth render | entity crud | form submit | file rw | queue cron | outbound http | update | cache rebuild | config import | module workflow |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| webcms | 0d7d6150 |
needs upgrade | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| farmos | 41f6e409 |
deployed | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| open_social | dc52b9ad |
needs upgrade | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| yusaopeny | 745e8798 |
verified | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| thunder | 50686db3 |
deployed | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| varbase | 4431d589 |
11 of 13 | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | unsupported | inline | unsupported | inline |
| govcms | 8fbe9c74 |
deployed | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| herbie | 06881419 |
verified | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| openculturas | ce2b54b4 |
12 of 13 | 2026-09-29 | degraded | inline | inline | inline | inline | inline | unsupported | inline | parked | inline | inline | inline | inline |
| droopler | eb5b3a4f |
verified | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| localgov_microsites | 4de8403b |
needs upgrade | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| essex | 34f325e7 |
needs upgrade | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| atelier | 717890c5 |
7 of 13 | 2026-09-29 | unsupported | inline | inline | inline | inline | inline | unsupported | unsupported | parked | unsupported | inline | unsupported | unsupported |
| openintranet | 15727c10 |
verified | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| islandora | a518aea2 |
verified | 2026-09-29 | inline | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| activity_finder | 68e11f8e |
verified | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| ymca360 | a21e6bf6 |
verified | 2026-09-29 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| strawberryfield | 95129453 |
unsupported | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| fairwell | f1851b47 |
verified | 2026-09-29 | inline | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| entity_reference_integrity | 14749753 |
unsupported | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| migration_example | 171af072 |
needs upgrade | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| simple_oauth_21 | f2b73148 |
verified | 2026-09-29 | inline | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| lagoon_cachebackend | dc070ad6 |
verified | 2026-09-29 | inline | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| fflch | 75fc28a7 |
needs upgrade | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| drupalx | d665d327 |
verified | 2026-09-29 | inline | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| varbase_patches | 6f1d782c |
unsupported | 2026-09-29 | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported | unsupported |
| mantle2 | 8d10eff7 |
verified | 2026-09-29 | inline | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
Deployed Runs
| repository | commit | date | plan | passed | install | container build | anon render | auth render | entity crud | form submit | file rw | queue cron | outbound http | update | cache rebuild | config import | module workflow |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| farmos | 41f6e409 |
2026-09-30 | paid | 13 of 13 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| thunder | 50686db3 |
2026-09-30 | paid | 13 of 13 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
| govcms | 8fbe9c74 |
2026-09-30 | paid | 13 of 13 | degraded | inline | inline | inline | inline | inline | inline | inline | parked | inline | inline | inline | inline |
Notes
- webcms: needs upgrade: core 10.6.15 does not accept Drupal 11; drangler plans the 10 -> 11 upgrade
- farmos
- install: 30/30 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 7 composer patches not applied; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid; migrated: native install, database landed through migrate install, profile and custom code uploaded
- container build: the container was built on the first boot over the migrated database
- anon render: / answered 403 (a front page for signed-in users), so /user/login was rendered anonymously
- entity crud: a term in log_category was created and deleted (the site defines no node type)
- file rw: written through public:// and read back after the interpreter was dropped; the site has no media image form
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun7zpqu; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- open_social: needs upgrade: core ^10.5.6 does not accept Drupal 11; drangler plans the 10 -> 11 upgrade
- yusaopeny
- install: 165/167 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 21 composer patches not applied; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid; migrated: native install, database landed through migrate install, profile and custom code uploaded; installed without demo content: the demo import instantiates openy_prgf_class_location's block, which type-hints t...
- container build: the container was built on the first boot over the migrated database
- anon render: / answered 404 (a front page set to content this install does not carry), so /user/login was rendered anonymously
- auth render: the administrator accepted /admin/openy/terms-and-conditions, which the site puts in front of every admin page, before the probes
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun8y4gc; drained to phase complete, with no unit to run
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- thunder
- install: migrated: native install, database landed through migrate install, profile and custom code uploaded; 56/56 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 4 composer patches not applied; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid
- container build: the container was built on the first boot over the migrated database
- file rw: written through public:// and read back after the interpreter was dropped; the site has no media image form
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun5ft5g; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- varbase
- install: 195/196 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 65 composer patches not applied; 1 not enabled on the site, skipped: drupal/ai_provider_amazeeio; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid; migrated: native install, database landed through migrate install, profile and custom code uploaded
- container build: the container was built on the first boot over the migrated database
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: the run halted: unit-aborted: flush:final:rebuild_hooks aborted: JsonSchema\Exception\ResourceNotFoundException: PHP Request Startup: Failed to open stream: No such file or directory
- config import: import answered 200, confirm 200, read 200; class="messages-list"> Error message | class="messages__content"> 1 error has been found: Paste your configuration here | class="messages-list"> Error message | class="messages__content"> 2 errors have been found: Configuration type Paste your configuration here; posted 352 characters into a form with fields op, config_type, config_name, import, custo...
- module workflow: /admin/reports/status, /admin/config
- govcms
- install: migrated: native install, database landed through migrate install, profile and custom code uploaded; 103/103 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 9 composer patches not applied; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid
- container build: the container was built on the first boot over the migrated database
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun5hii8; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- herbie
- install: 109/112 registry packages; 46/46 custom uploaded; 0/0 modules enabled; 26 composer patches not applied; 3 not enabled on the site, skipped: drupal/entity_share_cron, drupal/salesforce, drupal/theme_per_user; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid; migrated: native install, database landed through migrate install, profile and custom code uploaded; installe...
- container build: the container was built on the first boot over the migrated database
- entity crud: no content type or vocabulary; a user account was created and deleted
- file rw: written through public:// and read back after the interpreter was dropped; the site has no media image form
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun7hwwa; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- openculturas
- install: 107/107 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 64 composer patches not applied; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid; migrated: native install, database landed through migrate install, profile and custom code uploaded; installed from its own config/sync with sqlite added to core.extension (the export came from MySQL) and its modera...
- container build: the container was built on the first boot over the migrated database
- anon render: / answered 404 (a front page set to content this install does not carry), so /user/login was rendered anonymously
- file rw: upload answered 200 and no media row names the file; class="messages-list"> Error message | class="messages__content"> Name field is required.; flagged fields: name[0][value]
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun837kb; drained to phase complete, with no unit to run
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- droopler
- install: migrated: native install, database landed through migrate install, profile and custom code uploaded; 48/48 registry packages; 2/2 custom uploaded; 0/0 modules enabled; 5 composer patches not applied; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid; its recipe assumes node's body field storage, which Drupal 11 ships only in core's page_content_type recipe, so that ...
- container build: the container was built on the first boot over the migrated database
- entity crud: no content type or vocabulary; a user account was created and deleted
- file rw: written through public:// and read back after the interpreter was dropped; the site has no media image form
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun5itz0; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- localgov_microsites: needs upgrade: core ^10.0 does not accept Drupal 11; drangler plans the 10 -> 11 upgrade
- essex: needs upgrade: core 10.3.13 does not accept Drupal 11; drangler plans the 10 -> 11 upgrade
- atelier
- install: 4 failed: aincient_audit: upload failed: uploading 25 blob(s) drangler: rolled back: Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: The service "aincient_audit.meta_reader" has a dependency on a non-existent service "aincient_pages.metatags". | aincient_chat: upload failed: uploading 52 blob(s) uploading 15 blob(s) drangler: rolled back: Symfony\Component\DependencyIn...
- container build: the container was built on the first boot over the migrated database
- anon render: / answered 404 (a front page set to content this install does not carry), so /user/login was rendered anonymously
- file rw: upload answered 500 and no media row names the file; no message on the page; log: {"cfw":"php","level":"warn","severity":4,"channel":"access denied","message":"Path: /user/1. Drupal\Core\Http\Exception\CacheableAccessDeniedHttpException: The 'access user profiles' permission is required. in Drupal\Core\Routing\AccessAwareRouter->checkAccess() (line 114 of /drupal/core/lib/
- queue cron: the run answered 303; no message on the page; the log has no Cron run completed entry
- outbound http: the update check fetched from the registry through the parked fetch
- update: the run halted: requirements-error: core reports requirement errors: {"aincient_assistant_ui-aincient_chat":"AIncient assistant-ui requires this module.","aincient_brand-aincient_pages":"AIncient Brand requires this module.","invalid_module":"Array"}
- config import: import answered 200, confirm 200, read 200; no message on the page | no message on the page; posted 343 characters into a form with fields config_type, config_name, import, custom_entity_id, form_build_id, form_token, form_id, op
- module workflow: /admin/reports/status answered 500: The website encountered an unexpected error. Try again later.; /admin/config answered 500: The website encountered an unexpected error. Try again later.; log: {"cfw":"php","level":"error","severity":3,"channel":"php","message":"Drupal\Component\Plugin\Exception\PluginNotFoundException: The "aincient_block_fragment" plugin does not exist. Valid plugin ID...
- openintranet
- install: migrated: native install, database landed through migrate install, profile and custom code uploaded; 107/109 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 6 composer patches not applied; 2 not enabled on the site, skipped: drupal/ckeditor5_allowed_html, drupal/other_view_filter; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid
- container build: the container was built on the first boot over the migrated database
- entity crud: no content type or vocabulary; a user account was created and deleted
- file rw: written through public:// and read back after the interpreter was dropped; the site has no media image form
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun56u79; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- islandora
- container build: the container was rebuilt by the enable
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun57fwt; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: routes from its routing file: /admin/config/islandora, /admin/config/islandora/core, /admin/reports/islandora/rdf_mappings, /media/delete_with_files, /node/delete_with_media
- activity_finder
- install: 165/167 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 21 composer patches not applied; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid; migrated: native install, database landed through migrate install, profile and custom code uploaded
- container build: the container was built on the first boot over the migrated database
- anon render: / answered 404 (a front page set to content this install does not carry), so /user/login was rendered anonymously
- auth render: the administrator accepted /admin/openy/terms-and-conditions, which the site puts in front of every admin page, before the probes
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun8z8ua; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: routes from its routing file: /af/get-data, /admin/openy/settings/activity-finder, /af/more-info
- ymca360
- install: 165/167 registry packages; 1/1 custom uploaded; 0/0 modules enabled; 21 composer patches not applied; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid; migrated: native install, database landed through migrate install, profile and custom code uploaded
- container build: the container was built on the first boot over the migrated database
- anon render: / answered 404 (a front page set to content this install does not carry), so /user/login was rendered anonymously
- auth render: the administrator accepted /admin/openy/terms-and-conditions, which the site puts in front of every admin page, before the probes
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun8xtry; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: routes from its routing file: /admin/config/system/yusaopeny-ymca360, /admin/config/system/yusaopeny-ymca360/settings, /admin/config/system/yusaopeny-ymca360/locations-mapping
- strawberryfield
- install: enabling strawberryfield was refused: unparseable: Expected property name or '}' in JSON at position 1 (line 1 column 2) (output: Fatal error: Declaration of Drupal\strawberryfield\ProxyClass\StrawberryfieldMimeService::setMapping(?array $mapping = null) must be compatible with Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser::setMapping(?array $mapping = null): voi); upstream conflict: frict...
- container build, anon render, auth render, entity crud, form submit, file rw, queue cron, outbound http, update, cache rebuild, config import, module workflow: blocked by install: enabling strawberryfield was refused: unparseable: Expected property name or '}' in JSON at position 1 (line 1 column 2) (output: Fatal error: Declaration of Drupal\strawberryfield\ProxyClass\StrawberryfieldMimeService::setMapping(?array $mapping = null) must be compatible with Drupal\Core\File\Mime
- fairwell
- container build: the container was rebuilt by the enable
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun5c5m4; drained to phase complete, with no unit to run
- config import: system.site was imported from YAML and read back
- module workflow: routes from its routing file: /admin/config/content/node-export-json-md, /admin/config/content/divoblog-api, /api/divoblog/index
- entity_reference_integrity
- install: enabling entity_reference_integrity was refused: Class "Drupal\entity_reference_integrity\Controller\IntegrityReportController" does not exist at /drupal/core/lib/Drupal/Core/Entity/EntityResolverManager.php:136; upstream defect: the routing file names its controller with doubled backslashes inside a single-quoted YAML string, and native PHP 8.5 with the same Composer autoloader refuses the ...
- container build, anon render, auth render, entity crud, form submit, file rw, queue cron, outbound http, update, cache rebuild, config import, module workflow: blocked by install: enabling entity_reference_integrity was refused: Class "Drupal\entity_reference_integrity\Controller\IntegrityReportController" does not exist at /drupal/core/lib/Drupal/Core/Entity/EntityResolverManager.php:136
- migration_example: needs upgrade: core 8.x does not accept Drupal 11; drangler upgrades from Drupal 10 only, so move it from Drupal 8 to 10 first
- simple_oauth_21
- container build: the container was rebuilt by the enable
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun6p14u; drained to phase complete, with no unit to run
- config import: system.site was imported from YAML and read back
- module workflow: routes from its routing file: /admin/config/people/simple_oauth/oauth-21
- lagoon_cachebackend
- install: 2/2 registry packages; 0/0 custom uploaded; 0/0 modules enabled; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid
- container build: the project enables no module, so the container is the one the first boot built
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun5eihh; drained to phase complete, with no unit to run
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- fflch: needs upgrade: core 9.1.0 does not accept Drupal 11; drangler upgrades from Drupal 10 only, so move it from Drupal 9 to 10 first
- drupalx
- install: migrated: native install, database landed through migrate install, profile and custom code uploaded; 71/72 registry packages; 2/2 custom uploaded; 0/0 modules enabled; 1 not enabled on the site, skipped: drupal/ai_provider_amazeeio; 0 rows written by the delivery (free allows 100,000 a day); run with PLAN=paid
- container build: the container was built on the first boot over the migrated database
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun5zt41; drained to phase complete, with no unit to run
- config import: system.site was imported from YAML and read back
- module workflow: /admin/reports/status, /admin/config
- varbase_patches: not a site: varbase_patches is a composer plugin that patches other packages at install time
- mantle2
- container build: the container was rebuilt by the enable
- file rw: a multipart image upload through the media form was stored and read back byte for byte
- queue cron: cron ran from the administration form and the log records Cron run completed
- outbound http: the update check fetched from the registry through the parked fetch
- update: prepared run rmun5em03; drained to phase complete
- config import: system.site was imported from YAML and read back
- module workflow: routes from its routing file: /openapi, /swagger-ui, /v2/hello, /v2/info, /v2/motd, /v2/users