different-ai/openwork · error
OpenWork server unavailable. Connect to manage imported clou
Error message
OpenWork server unavailable. Connect to manage imported cloud marketplaces.
What it means
When saving imported cloud marketplaces, createExtensionsStore persists the updated workspace config via writeWorkspaceOpenworkConfigRecord. That helper returns false when persistence is impossible (no desktop bridge for a local workspace and no OpenWork server connection). The store throws to prevent in-memory state from diverging from what would be lost on restart, telling the user to connect to the server.
Source
Thrown at apps/app/src/react-app/domains/settings/state/extensions-store.ts:642
} catch {
setStateField("importedCloudMarketplaces", {});
setStateField("importedCloudPlugins", {});
setStateField("pendingCloudPluginChanges", {});
return {};
}
};
const persistImportedCloudMarketplaces = async (nextMarketplaces: Record<string, CloudImportedMarketplace>) => {
const config = await readWorkspaceOpenworkConfigRecord();
const cloudImports = readWorkspaceCloudImports(config);
const nextCloudImports = {
...cloudImports,
marketplaces: nextMarketplaces,
};
const nextConfig = withWorkspaceCloudImports(config, nextCloudImports);
const persisted = await writeWorkspaceOpenworkConfigRecord(nextConfig);
if (!persisted) {
throw new Error("OpenWork server unavailable. Connect to manage imported cloud marketplaces.");
}
setStateField("importedCloudMarketplaces", nextMarketplaces);
void refreshPendingCloudPluginChanges();
};
const persistImportedCloudPlugins = async (nextPlugins: Record<string, CloudImportedPlugin>) => {
const config = await readWorkspaceOpenworkConfigRecord();
const cloudImports = readWorkspaceCloudImports(config);
const nextCloudImports = {
...cloudImports,
plugins: nextPlugins,
};
const nextConfig = withWorkspaceCloudImports(config, nextCloudImports);
const persisted = await writeWorkspaceOpenworkConfigRecord(nextConfig);
if (!persisted) {
throw new Error("OpenWork server unavailable. Connect to manage imported cloud plugins.");
}
setStateField("importedCloudPlugins", nextPlugins);View on GitHub (pinned to 2b7df46e8a)
Solutions
- Connect to the OpenWork server (Account/Settings → sign in) and retry the marketplace import.
- Verify network connectivity to the server endpoint.
- If on desktop with a local workspace, ensure the desktop runtime and workspace root are detected so the local file write path is used.
- Restart the app if the server connection state is stale.
Example fix
// before
const persisted = await writeWorkspaceOpenworkConfigRecord(nextConfig);
if (!persisted) {
throw new Error("OpenWork server unavailable. Connect to manage imported cloud marketplaces.");
}
// after
const persisted = await writeWorkspaceOpenworkConfigRecord(nextConfig);
if (!persisted) {
await requestServerConnection(); // prompt sign-in instead of a bare throw
return;
} Defensive patterns
Strategy: validation
Validate before calling
const canPersist = isDesktopRuntime() && !!workspaceRoot;
const serverOk = canUseOpenworkServer && !!openworkClient;
if (!canPersist && !serverOk) {
// show 'connect to server' prompt before attempting the import
} Try / catch
try {
await importCloudMarketplace(id);
} catch (err) {
if (err.message.includes("server unavailable")) openServerConnectDialog();
else throw err;
} Prevention
- Check server connection state before enabling cloud-import UI
- Re-authenticate proactively when tokens near expiry
- Disable import actions while offline with a visible reason
When it happens
Trigger: Adding/updating imported cloud marketplaces while writeWorkspaceOpenworkConfigRecord returns falsy: the workspace has an OpenWork target but the server is unreachable/not signed in, and the desktop local-write path doesn't apply (non-desktop runtime or no root).
Common situations: User signed out of OpenWork server/Den; server process stopped; network down; operating on a remote workspace without an active server connection; trying to manage cloud imports purely from web/mobile runtime.
Related errors
- OpenWork server unavailable. Connect to manage imported clou
- OpenWork server unavailable. Connect to remove skills.
- latest-mac.yml is missing artifact path/url.
- Failed to fetch latest-mac.yml (${response.status} ${respons
- Request timed out.
AI-assisted analysis of different-ai/openwork@2b7df46e8a (2026-09-01).
Data as JSON: /api/errors/c1cad985f947896c.
Report an issue: GitHub.