{"record":{"id":"38c8c13f98e7c416","repo":"BloopAI/vibe-kanban","slug":"no-setup-script-configured-for-this-project","errorCode":null,"errorMessage":"No setup script configured for this project","messagePattern":"No setup script configured for this project","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"packages/web-core/src/shared/actions/index.ts","lineNumber":1167,"sourceCode":"        },\n      });\n    },\n  },\n\n  // === Script Actions ===\n  RunSetupScript: {\n    id: 'run-setup-script',\n    label: 'Run Setup Script',\n    icon: TerminalIcon,\n    shortcut: 'R S',\n    requiresTarget: ActionTargetType.WORKSPACE,\n    isVisible: (ctx) => ctx.hasWorkspace,\n    isEnabled: (ctx) => !ctx.isAttemptRunning,\n    execute: async (_ctx, workspaceId) => {\n      const result = await workspacesApi.runSetupScript(workspaceId);\n      if (!result.success) {\n        if (result.error?.type === 'no_script_configured') {\n          throw new Error('No setup script configured for this project');\n        }\n        if (result.error?.type === 'process_already_running') {\n          throw new Error('Cannot run script while another process is running');\n        }\n        throw new Error('Failed to run setup script');\n      }\n    },\n  },\n\n  RunCleanupScript: {\n    id: 'run-cleanup-script',\n    label: 'Run Cleanup Script',\n    icon: TerminalIcon,\n    shortcut: 'R C',\n    requiresTarget: ActionTargetType.WORKSPACE,\n    isVisible: (ctx) => ctx.hasWorkspace,\n    isEnabled: (ctx) => !ctx.isAttemptRunning,\n    execute: async (_ctx, workspaceId) => {","sourceCodeStart":1149,"sourceCodeEnd":1185,"githubUrl":"https://github.com/BloopAI/vibe-kanban/blob/4deb7eca8f381f7cbc1f9d15515a9ab8f8009053/packages/web-core/src/shared/actions/index.ts#L1149-L1185","documentation":"Thrown by the RunSetupScript workspace action when workspacesApi.runSetupScript returns success:false with error.type === 'no_script_configured'. This means the backend has no setup script registered for the project, so there is nothing to execute. It is a deliberate, structured error rather than an unexpected failure.","triggerScenarios":"Executing RunSetupScript on a workspace whose project has no setup script defined in its configuration (setup_script null/empty), so the server responds with { success: false, error: { type: 'no_script_configured' } }.","commonSituations":"New projects created without a setup script in project config, users deleting the setup script from project settings and later invoking the action, or projects created before the setup-script feature was added.","solutions":["Add a setup script to the project configuration (project settings / setup_script field).","Hide or disable the RunSetupScript action when no script is configured (extend the action context with hasSetupScript).","Verify you are targeting the correct project/workspace — scripts are per-project.","If the script was recently added, reload the workspace/project record to pick up the new config."],"exampleFix":"// before\nisEnabled: (ctx) => !ctx.isAttemptRunning,\n// after\nisEnabled: (ctx) => !ctx.isAttemptRunning && ctx.hasSetupScript,\nisVisible: (ctx) => ctx.hasWorkspace && ctx.hasSetupScript,","handlingStrategy":"validation","validationCode":"// before running\nconst ctx = getWorkspaceContext(workspaceId);\nif (!ctx.hasWorkspace) return;\nif (!ctx.project.setupScript) {\n  toast.info('No setup script configured for this project');\n  return;\n}\nawait workspacesApi.runSetupScript(workspaceId);","typeGuard":"function isNoScriptError(result: RunScriptResult): boolean {\n  return result.success === false && result.error?.type === 'no_script_configured';\n}","tryCatchPattern":"try {\n  const result = await workspacesApi.runSetupScript(workspaceId);\n  if (!result.success && result.error?.type === 'no_script_configured') {\n    toast.info('Add a setup script in project settings first.');\n    return;\n  }\n  if (!result.success) throw new Error(result.error?.message ?? 'Failed to run setup script');\n} catch (err) {\n  toast.error(String(err));\n}","preventionTips":["Configure a setup script in project settings before relying on one-click setup.","Conditionally render script actions based on which scripts the project defines.","Use the structured error.type field rather than matching on message text.","Document per-project script requirements for your team."],"tags":["configuration","script","workspace"],"backgroundTag":"missing-script-configuration","analyzedSha":"4deb7eca8f381f7cbc1f9d15515a9ab8f8009053","analyzedAt":"2026-08-29T09:24:13.446Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}