You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After upgrading to a build with secure BYOK profile migration, Open Design automatically posts legacy browser-stored credentials to /api/byok/profiles. When the daemon rejects an invalid legacy value with a structured HTTP 400 response, the web client discards the daemon's safe validation message and shows Local daemon may be offline with Failed to save BYOK credential (400). The daemon did respond, so the guidance is misleading and does not tell the user which legacy field must be corrected.
Steps to reproduce
Start with a pre-migration BYOK configuration stored by an older Open Design build, including an invalid value such as a non-absolute baseUrl.
Allow startup migration to POST the legacy credential to /api/byok/profiles.
Observe the daemon return HTTP 400 with a structured VALIDATION_FAILED message.
Observe the toast report that the local daemon may be offline and show only Failed to save BYOK credential (400).
Expected behavior
For daemon HTTP errors, show the safe structured validation reason returned by the daemon so the user can correct the legacy configuration. Reserve the offline message for transport failures where the daemon cannot be reached. Keep the legacy browser credential until migration succeeds.
Open Design version
main after #6055; release/v0.17.0 after #6262 (pre-tag)
Platform
macOS (Apple Silicon)
Logs (optional)
The UI reports: `Local daemon may be offline.` and `Failed to save BYOK credential (400)`. The daemon response body contains `VALIDATION_FAILED` with the concrete field validation message.
Screenshots (optional)
None provided.
Additional context
The behavior was introduced by #6055 and is also present on the pre-tag release/v0.17.0 branch through backport #6262. The legacy secret remains in browser storage after the failed migration, which avoids data loss but leaves the user without actionable remediation.
What happened?
After upgrading to a build with secure BYOK profile migration, Open Design automatically posts legacy browser-stored credentials to
/api/byok/profiles. When the daemon rejects an invalid legacy value with a structured HTTP 400 response, the web client discards the daemon's safe validation message and showsLocal daemon may be offlinewithFailed to save BYOK credential (400). The daemon did respond, so the guidance is misleading and does not tell the user which legacy field must be corrected.Steps to reproduce
baseUrl./api/byok/profiles.VALIDATION_FAILEDmessage.Failed to save BYOK credential (400).Expected behavior
For daemon HTTP errors, show the safe structured validation reason returned by the daemon so the user can correct the legacy configuration. Reserve the offline message for transport failures where the daemon cannot be reached. Keep the legacy browser credential until migration succeeds.
Open Design version
main after #6055; release/v0.17.0 after #6262 (pre-tag)
Platform
Logs (optional)
Screenshots (optional)
None provided.
Additional context
The behavior was introduced by #6055 and is also present on the pre-tag release/v0.17.0 branch through backport #6262. The legacy secret remains in browser storage after the failed migration, which avoids data loss but leaves the user without actionable remediation.