Solo 1.0.36 Fixes Fatal Regression on Drupal 10 and Drupal 11.0–11.2

Subthemes Generated From 1.0.35 Still Need a Manual Class-Resolver Fix
A branching website diagram shows one main site successfully feeding several related subthemes while a separate orange page suggests an exception that still needs attention. The poster reads "DISCOVER DRUPAL. A Compatibility Fix With a Second Step. Solo 1.0.36 restores affected sites but some subthemes generated from the previous release still need a manual correction." The Solo logo reinforces that the update fixes the broader compatibility problem while leaving some previously generated subthemes requirin

Released on 7 October 2026, Solo 1.0.36 fixes a fatal regression introduced by version 1.0.35 one day earlier. The fault affected Drupal 10 and Drupal 11.0–11.2, where sites could throw a ServiceNotFoundException for Solo hook classes on every page.

Every Drupal 10 and Drupal 11.0–11.2 site running Solo 1.0.35 should update. Drupal 11.3 and later were not affected by the fatal error, although the release notes still recommend moving to 1.0.36. After updating, maintainers are instructed to run drush updb followed by drush cr.

Class Resolution Caused the Regression

The problem followed Drupal 12 compatibility work in Solo 1.0.35. The theme's #[LegacyHook] wrappers attempted to retrieve hook classes through \Drupal::service(). Drupal core does not load a theme's services.yml, and theme hook classes are only registered as services from Drupal 11.3.0.

Solo 1.0.36 replaces all 38 of those direct service lookups with \Drupal::classResolver(). The resolver returns the registered service where one exists and instantiates the class where it does not, allowing the same hook wrappers to work across the supported Drupal versions.

The release also removes solo.services.yml and the corresponding file from the Solo subtheme starterkit because core never loaded them. A separate compatibility fix changes how Solo clears library discovery caches when theme settings are saved: Drupal 11.1 and later use clear(), while Drupal 10 and Drupal 11.0 use clearCachedDefinitions().

Subthemes From 1.0.35 Need a Manual Fix

Updating the parent theme does not modify files already copied into a subtheme. Sites using a subtheme generated from the Solo 1.0.35 starterkit therefore need to edit the subtheme's .theme file manually.

Inside YOURTHEME_theme_suggestions_block_alter(), maintainers should replace the \Drupal::service() lookup for the hook class with \Drupal::classResolver(). The copied .services.yml file can also be removed because Drupal core does not load it.

Drupal 10 Testing Is Added After the Failure

Solo 1.0.36 adds a HookClassResolutionTest designed to fail if a theme hook class is fetched with \Drupal::service() or if a theme services.yml file is reintroduced. The test suite also adds the older @group solo annotation alongside the PHP attribute so Drupal 10's test runner can discover the tests.

The project's continuous-integration setup now includes a Drupal 10 job. That coverage directly addresses the compatibility gap exposed by 1.0.35, whose hook-class changes worked on newer Drupal 11 releases but failed on older supported core versions.

The Drupal.org issue reporting the Drupal 10 failure was opened at 22:02 UTC on 6 October. A fix was committed at 23:00 UTC, and Solo 1.0.36 was released at 01:55 UTC on 7 October.

Drupal.org reports 2,434 sites using Solo across versions. That usage figure represents overall reported adoption of the theme and should not be read as the number of sites affected by the 1.0.35 regression.

References

  1. solo 1.0.36, Drupal.org (7 October 2026)
  2. Solo 1.0.35 regression on Drupal 10, Drupal.org (6 October 2026)

Disclosure: This content is produced with the assistance of AI.

Note: The vision of this web portal is to help promote news and stories around the Drupal community and promote and celebrate the people and organizations in the community. We strive to create and distribute our content based on these content policy. If you see any omission/variation on this please reach out to us at #thedroptimes channel on Drupal Slack and we will try to address the issue as best we can.

Upcoming Events