ruvnet/ruflo · error · Error

SONA is disabled

Error message

SONA is disabled

What it means

A SONA trajectory/profile tool handler ran while the shared SONAState has enabled=false. The neural-optimization subsystem was switched off by configuration, so every SONA MCP tool refuses work with this sentinel error instead of silently no-oping.

Source

Thrown at v3/mcp/tools/sona-tools.ts:320

  }
}

function getState(): SONAState {
  return SONAState.getInstance();
}

// ============================================================================
// Tool Handlers
// ============================================================================

async function handleTrajectoryBegin(
  input: z.infer<typeof trajectoryBeginSchema>,
  context?: ToolContext
): Promise<{ trajectoryId: string; sessionId: string; startedAt: string }> {
  const state = getState();

  if (!state.enabled) {
    throw new Error('SONA is disabled');
  }

  const trajectoryId = state.generateId('traj');
  const sessionId = input.sessionId || state.generateId('session');

  const trajectory: Trajectory = {
    id: trajectoryId,
    sessionId,
    startedAt: new Date(),
    steps: [],
    context: input.context || {},
  };

  state.trajectories.set(trajectoryId, trajectory);
  state.stats.trajectoryCount++;

  return {
    trajectoryId,

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Enable SONA in the configuration before calling SONA tools.
  2. Check the feature flag or environment variable that disables SONA.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/mcp/tools/sona-tools.ts:320 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/5f7fb3971beb0865. Report an issue: GitHub.