← All stories

BRANCH · ef-096-zoom-settings-repair

Zoom quick-create and settings repair

EF-096Persona: OrganizerRoots in: event-setupMatrix: Partial

Organizer can quick-create a Zoom meeting or webinar and gets a repair surface when account settings make the requested resource unsupported, such as webinar public registration being disabled. Tier-3 tightening: Zoom reconnection and repair now reference ui-oauth-connection-card for the OAuth connection UX.

Happy path / Lifecycle

  1. Quick-create a Zoom webinar.

    Organizer chooses webinar, date, registration mode, and host.

  2. Detect unsupported settings.

    If Zoom rejects a setting, Voyage shows a repair panel with the failing setting and supported alternatives.

  3. Apply repair.

    The repair action retries creation with supported settings and preserves the organizer's original intent in audit.

Failure modes

OAuth refresh

Expired Zoom token refreshes and retries settings read.

Rate limit

Zoom 429 backs off with jitter.

Webhook replay

Repeated repair callback is idempotent.

Schema drift

Unknown Zoom settings fields are ignored.

Missing credential

Re-auth CTA appears without stack trace.

Sandbox isolation

Zoom dev account fixture cannot mutate production data.

Audit row

Every quick-create or repair writes one audit row.

Partial rollback

Failed repair rolls back or shows per-setting outcomes.

Public registration disabled

Repair panel explains org setting and offers a supported alternative.

Host lacks webinar license

UI identifies host-license issue before retry loops.

Existing webinar mismatch

Linking an incompatible webinar shows repair rather than silent overwrite.

Parity gap

Gap panel remains until unsupported-setting repair is implemented.

Stable test attributes

Visibility teeth. Repair guidance and gap states must be visible, not only logged.

data-testWherePurpose
zoom-repair-panelZoom settingsrepair surface
zoom-quick-create-ctaZoom settingsquick create
zoom-unsupported-setting-alertZoom settingssettings failure
zoom-repair-apply-ctaZoom settingsapply repair
zoom-host-license-alertZoom settingslicense issue
zoom-repair-outcome-tableZoom settingsper-setting outcomes
zoom-status-pillZoom settingssync state
zoom-repair-gap-panelZoom settingspartial gap marker

Agent test plan

- zoom-repair-opens
- zoom-unsupported-setting-repair
- oauth-refresh-on-expired-token
- rate-limit-backoff
- webhook-replay-idempotent
- schema-drift-degrades-gracefully
- missing-credential-graceful-error
- sandbox-vs-prod-isolation
- audit-log-row-per-sync
- partial-import-rollback
- public-registration-disabled
- host-webinar-license-missing
- existing-webinar-mismatch
- zoom-repair-gap-probe