Skip to main content
Use client.Server before calling workspace APIs — especially on self-hosted servers where workspace support may be disabled. Read next: Handling server capabilities

Methods

IsWorkspaceEnabled
Task<bool> IsWorkspaceEnabled(CancellationToken cancellationToken = default)
Returns whether the connected server has the workspaces module enabled. Use this to guard calls to client.Workspace and workspace-scoped methods on client.ActiveUser.

Usage

https://mintcdn.com/speckle/VtRPWzmN-ULoLfIv/images/developers/sdks/csharp.svg?fit=max&auto=format&n=VtRPWzmN-ULoLfIv&q=85&s=f2970e3b8bd4a2c7899b46211a42f251Example
if (await client.Server.IsWorkspaceEnabled())
{
    var workspaces = await client.ActiveUser.GetWorkspaces();
    // ...
}
else
{
    // Personal (non-workspace) server, e.g. a self-hosted instance
    var projects = await client.ActiveUser.GetProjects();
}

FAQ

The connected server does not have workspaces enabled (arrives wrapped in an AggregateException). Call IsWorkspaceEnabled() and use client.ActiveUser.GetProjects() for personal-project servers.

Next Steps

Core concepts

Personal vs workspace servers

Handling server capabilities

Check-before-call patterns

WorkspaceResource

Workspace queries this check gates
Last modified on July 10, 2026