beekeeper-studio/beekeeper-studio · error
Memberships are only available in cloud workspaces
Error message
Memberships are only available in cloud workspaces
What it means
UtilMembershipModule deliberately throws for every local mutation/action via the localOnly helper. Memberships are a cloud-workspace-only concept, so the module intentionally rejects all local operations (save, remove, etc.) instead of storing membership data in the local database.
Source
Thrown at apps/studio/src/store/modules/data/membership/UtilMembershipModule.ts:12
import _ from "lodash";
import { IMembership } from "@/common/interfaces/IMembership";
import {
DataState,
DataStore,
mutationsFor,
} from "@/store/modules/data/DataModuleBase";
type State = DataState<IMembership>;
const localOnly = () => {
throw new Error("Memberships are only available in cloud workspaces");
};
export const UtilMembershipModule: DataStore<IMembership, State> = {
namespaced: true,
state: {
items: [],
loading: false,
error: null,
pollError: null,
},
mutations: mutationsFor<IMembership>({}, { field: "name", direction: "asc" }),
actions: {
async initialize() {
// noop
},
async load() {
// no-op: memberships are cloud-only
},View on GitHub (pinned to 4e3e03e322)
Solutions
- Check the current workspace type before touching membership actions: only call them for cloud workspaces.
- Gate membership UI/sync behind the cloud-workspace flag in the store or component.
- Wrap calls in try/catch and ignore the error for local workspaces if the operation is optional.
- Use the correct cloud membership module/API instead of the local util module.
Example fix
// before
store.dispatch('data/utilMembership/save', membership);
// after
if (store.state.workspace?.type === 'cloud') {
store.dispatch('data/utilMembership/save', membership);
} Defensive patterns
Strategy: type-guard
Validate before calling
if (store.state.utilWorkspace?.isCloud !== true) return; // skip membership ops for local workspaces
Type guard
function isCloudWorkspace(ws: { type?: string } | null | undefined): ws is { type: 'cloud' } {
return ws?.type === 'cloud';
} Try / catch
try {
store.dispatch('data/utilMembership/save', membership);
} catch (e) {
if (!/cloud workspaces/.test(e.message)) throw e; // ignore on local workspace
} Prevention
- Gate all membership features behind a cloud-workspace check
- Hide membership UI entirely in local workspaces
- Use the cloud API module for membership data instead of local store modules
When it happens
Trigger: Any commit/dispatch against the 'utilMembership' store namespace (e.g. utilMembership/save, utilMembership/remove) while not connected to a cloud workspace, or any code path invoking these actions unconditionally.
Common situations: Calling membership sync code in a local (non-cloud) workspace; feature code that assumes a cloud connection and calls membership actions unconditionally; tests running without a cloud workspace context.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Schemas are not supported
- Query Streaming is not currently supported for clickhouse
- Dropping ${typeOfElement} is not supported.
- Copy to SQL is not supported for DynamoDB connections.
- DynamoDB does not support dropping ${typeOfElement}
AI-assisted analysis of beekeeper-studio/beekeeper-studio@4e3e03e322 (2026-08-31).
Data as JSON: /api/errors/195fac38af39c605.
Report an issue: GitHub.