Is there an existing issue for this?
Current behavior
When the API is briefly unavailable (restart, 502 Bad Gateway, short network blip), a request to GET /api/instances/ fails.
The web app then shows the full-page maintenance empty state:
"Looks like Plane didn't start up correctly!
Some services might have failed to start..."
Even if instance data was already loaded successfully earlier in the session.
Expected:
If instance info is already in the client store, keep the app usable. Only show the maintenance screen when there is no instance data (true cold start / API completely down and never loaded).
Actual:
In apps/web/core/lib/wrappers/instance-wrapper.tsx, any SWR error on INSTANCE_INFORMATION immediately renders <MaintenanceView />, regardless of whether instance is already available.
Suggested fix:
Change:
if (instanceSWRError) return <MaintenanceView />;
to:
if (instanceSWRError && !instance) return <MaintenanceView />;
Steps to reproduce
- Start local Plane stack (API + web).
- Open the web app and confirm it loads normally (instance info fetched successfully).
- Restart the API container / briefly stop API so
/api/instances/ returns 502 or network error for a few seconds.
- Keep the browser tab open (or trigger a re-fetch / reload of instance info via SWR).
- Observe the UI switches to the maintenance page ("Plane didn't start up correctly!") instead of staying on the already-loaded app.
Optional logs:
- Network tab:
GET /api/instances/ → 502 / failed
- After API is healthy again, refresh still may be needed depending on client state
Environment
Deploy preview
Browser
Google Chrome
Variant
Local
Version
1.4.2
Is there an existing issue for this?
Current behavior
When the API is briefly unavailable (restart, 502 Bad Gateway, short network blip), a request to
GET /api/instances/fails.The web app then shows the full-page maintenance empty state:
"Looks like Plane didn't start up correctly!
Some services might have failed to start..."
Even if instance data was already loaded successfully earlier in the session.
Expected:
If instance info is already in the client store, keep the app usable. Only show the maintenance screen when there is no instance data (true cold start / API completely down and never loaded).
Actual:
In
apps/web/core/lib/wrappers/instance-wrapper.tsx, any SWR error onINSTANCE_INFORMATIONimmediately renders<MaintenanceView />, regardless of whetherinstanceis already available.Suggested fix:
Change:
if (instanceSWRError) return <MaintenanceView />;to:
if (instanceSWRError && !instance) return <MaintenanceView />;Steps to reproduce
/api/instances/returns 502 or network error for a few seconds.Optional logs:
GET /api/instances/→ 502 / failedEnvironment
Deploy preview
Browser
Google Chrome
Variant
Local
Version
1.4.2