Skip to content

FmlClient constructor crash causes 500 when manifest has validation errors #15018

@jaredlockhart

Description

@jaredlockhart

Because

  • The FmlClient constructor (from nimbus_megazord.fml) can raise FmlError.ValidationError when a feature manifest has validation errors (e.g., a variable with both gecko-pref and default, which are now mutually exclusive as of application-services build 150.20260321050323)
  • NimbusFmlLoader.fml_client() does not catch this exception, so it propagates up and causes a 500 error on any page that calls get_invalid_fields_errors() (including the audience page during experiment creation)
  • This was discovered via failing Fenix integration tests on PR chore(nimbus): Update application-services #15002 (application-services version bump) — all FIREFOX_FENIX tests failed with TimeoutException because the audience page returned a 500

This issue

  • Adds a try/except FmlError around the FmlClient() constructor call in NimbusFmlLoader.fml_client() so that invalid manifests are logged and skipped rather than crashing the page
  • Adds unit tests verifying the graceful degradation

Related:

┆Issue is synchronized with this Jira Task

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions