BloopAI/vibe-kanban · warning

No archive script configured for this project

Error message

No archive script configured for this project

What it means

Thrown by the RunArchiveScript action when workspacesApi.runArchiveScript returns success:false with error.type === 'no_script_configured'. The project has no archive script registered, so the backend refuses to start one.

Source

Thrown at packages/web-core/src/shared/actions/index.ts:1211

        }
        throw new Error('Failed to run cleanup script');
      }
    },
  },

  RunArchiveScript: {
    id: 'run-archive-script',
    label: 'Run Archive Script',
    icon: TerminalIcon,
    shortcut: 'R A',
    requiresTarget: ActionTargetType.WORKSPACE,
    isVisible: (ctx) => ctx.hasWorkspace,
    isEnabled: (ctx) => !ctx.isAttemptRunning,
    execute: async (_ctx, workspaceId) => {
      const result = await workspacesApi.runArchiveScript(workspaceId);
      if (!result.success) {
        if (result.error?.type === 'no_script_configured') {
          throw new Error('No archive script configured for this project');
        }
        if (result.error?.type === 'process_already_running') {
          throw new Error('Cannot run script while another process is running');
        }
        throw new Error('Failed to run archive script');
      }
    },
  } satisfies WorkspaceActionDefinition,

  // === Issue Actions ===
  CreateIssue: {
    id: 'create-issue',
    label: 'Create Issue',
    icon: PlusIcon,
    shortcut: 'I C',
    requiresTarget: ActionTargetType.NONE,
    isVisible: (ctx) => ctx.layoutMode === 'kanban' && !ctx.isCreatingIssue,
    execute: (ctx) => {

View on GitHub (pinned to 4deb7eca8f)

Solutions

  1. Add an archive script to the project configuration.
  2. Hide/disable the RunArchiveScript action when no archive script is configured.
  3. Verify the correct project/workspace is being targeted.
  4. Refresh project data after editing the script configuration.

Example fix

// before
isVisible: (ctx) => ctx.hasWorkspace,
// after
isVisible: (ctx) => ctx.hasWorkspace && ctx.hasArchiveScript,
Defensive patterns

Strategy: validation

Validate before calling

// before running
const ctx = getWorkspaceContext(workspaceId);
if (!ctx.hasWorkspace) return;
if (!ctx.project.archiveScript) {
  toast.info('No archive script configured for this project');
  return;
}
await workspacesApi.runArchiveScript(workspaceId);

Type guard

function isNoScriptError(result: RunScriptResult): boolean {
  return result.success === false && result.error?.type === 'no_script_configured';
}

Try / catch

try {
  const result = await workspacesApi.runArchiveScript(workspaceId);
  if (!result.success && result.error?.type === 'no_script_configured') {
    toast.info('Add an archive script in project settings first.');
    return;
  }
  if (!result.success) throw new Error(result.error?.message ?? 'Failed to run archive script');
} catch (err) {
  toast.error(String(err));
}

Prevention

When it happens

Trigger: Executing RunArchiveScript on a workspace whose project defines no archive script (archive_script null/empty), yielding the structured { success: false, error: { type: 'no_script_configured' } } response.

Common situations: Projects that never configured archive automation, users assuming archiving runs a default script, or configs predating the archive-script feature.

Related errors


AI-assisted analysis of BloopAI/vibe-kanban@4deb7eca8f (2026-08-29). Data as JSON: /api/errors/056ac660f72d8cea. Report an issue: GitHub.