[2.4.3] - Provisioning & Validation Fixes
Highlights
This patch release improves account handle safety, hardens bucket provisioning reliability after Stripe payments, and reduces event-system log noise when the database is temporarily unreachable.
Added
-
Admin username repair endpoint for existing whitespace handles
POST /api/admin/users/repair-usernames- Supports dry-run and apply modes
- Replacement options: hyphen, underscore, or remove spaces
- Includes conflict checks to safely skip duplicate collisions
-
Shared storage provisioning helper
- Centralized idempotent bucket provisioning flow
- Reuses existing subscription-linked bucket records when present
- Handles already-exists bucket responses gracefully
- Emits provision events and triggers credentials email on success
Changed
-
Stripe checkout metadata persistence — now preserves subscription metadata for recovery scenarios
- Ensures downstream events retain provisioning context (type, location, tier)
-
Bucket dashboard auto-healing — now attempts automatic recovery when user has an active storage-bucket subscription but no assigned bucket
- Updated messaging reflects automatic provisioning and retry behavior
Fixed
-
Username whitespace validation gaps — setup/admin validation now consistently blocks handles containing spaces
-
Storage bucket purchase reliability — webhook flow now includes recovery path
- Merges checkout and subscription metadata
invoice.payment_succeededcan provision ifcheckout.session.completedis missed- Idempotency checks prevent duplicate provisioning
-
Event system DB outage spam — now fails soft when database is unreachable
- Centralized DB-connection error detection
- Handler sync defers/requeues during outages instead of warning per handler
- Worker retry logging is quieter during DB-unreachable periods
Notes
- No breaking API changes
- Focuses on reliability and operational safety