{"record":{"id":"e3f47bcc68bbb781","repo":"googleapis/mcp-toolbox","slug":"unknown-action-s","errorCode":null,"errorMessage":"unknown action: %s","messagePattern":"unknown action: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"internal/tools/looker/lookerhealthpulse/lookerhealthpulse.go","lineNumber":202,"sourceCode":"\tSdkClient   *v4.LookerSDK\n}\n\nfunc (t *pulseTool) RunPulse(ctx context.Context, source compatibleSource, params PulseParams) (interface{}, error) {\n\tswitch params.Action {\n\tcase \"check_db_connections\":\n\t\treturn t.checkDBConnections(ctx, source)\n\tcase \"check_dashboard_performance\":\n\t\treturn t.checkDashboardPerformance(ctx, source)\n\tcase \"check_dashboard_errors\":\n\t\treturn t.checkDashboardErrors(ctx, source)\n\tcase \"check_explore_performance\":\n\t\treturn t.checkExplorePerformance(ctx, source)\n\tcase \"check_schedule_failures\":\n\t\treturn t.checkScheduleFailures(ctx, source)\n\tcase \"check_legacy_features\":\n\t\treturn t.checkLegacyFeatures(ctx, source)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown action: %s\", params.Action)\n\t}\n}\n\n// Check DB connections and run tests\nfunc (t *pulseTool) checkDBConnections(ctx context.Context, source compatibleSource) (interface{}, error) {\n\tlogger, err := util.LoggerFromContext(ctx)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to get logger from ctx: %s\", err)\n\t}\n\tlogger.InfoContext(ctx, \"Test 1/6: Checking connections\")\n\n\treservedNames := map[string]struct{}{\n\t\t\"looker__internal__analytics__replica\": {},\n\t\t\"looker__internal__analytics\":          {},\n\t\t\"looker\":                               {},\n\t\t\"looker__ilooker\":                      {},\n\t}\n","sourceCodeStart":184,"sourceCodeEnd":220,"githubUrl":"https://github.com/googleapis/mcp-toolbox/blob/8cc6e09de2ad7b8bffc77751799585a1401a48eb/internal/tools/looker/lookerhealthpulse/lookerhealthpulse.go#L184-L220","documentation":"RunPulse dispatches on the required `action` parameter and only supports check_db_connections, check_dashboard_performance, check_dashboard_errors, check_explore_performance, check_schedule_failures, and check_legacy_features. Any other value falls to the default branch and returns this error. This is a user-supplied input validation error at invocation time.","triggerScenarios":"Invoking the looker-health-pulse tool with params.Action set to a value outside the supported switch cases (typo, wrong casing, or an action from a different tool).","commonSituations":"LLM hallucinating an action name, clients copying the `action` enum from looker-health-analyze (projects/models/explores), or case-sensitivity mistakes like \"Check_DB_Connections\".","solutions":["Set action to one of: check_db_connections, check_dashboard_performance, check_dashboard_errors, check_explore_performance, check_schedule_failures, check_legacy_features.","Check spelling and casing — the switch is exact, case-sensitive matching.","If calling via an LLM, constrain the action parameter to the documented enum in the tool description.","If a new action is genuinely needed, add a case to RunPulse and a corresponding checkX method."],"exampleFix":"// before\n{\"action\": \"check_dashboards\"} // unknown\n// after\n{\"action\": \"check_dashboard_performance\"}","handlingStrategy":"validation","validationCode":"validActions := map[string]bool{\n    \"check_db_connections\": true, \"check_dashboard_performance\": true,\n    \"check_dashboard_errors\": true, \"check_explore_performance\": true,\n    \"check_schedule_failures\": true, \"check_legacy_features\": true,\n}\nif !validActions[params[\"action\"]] {\n    return errors.New(\"action must be one of the six supported pulse checks\")\n}","typeGuard":null,"tryCatchPattern":"result, toolErr := tool.Invoke(ctx, src, params, token)\nif toolErr != nil && strings.Contains(toolErr.Error(), \"unknown action\") {\n    return fmt.Errorf(\"use one of: check_db_connections, check_dashboard_performance, check_dashboard_errors, check_explore_performance, check_schedule_failures, check_legacy_features\")\n}","preventionTips":["Constrain the action parameter to the documented enum in client code","Copy action names exactly, lowercase with underscores","Do not reuse action names from other looker tools (projects/models/explores)","If using an LLM, restrict via the tool's parameter schema"],"tags":["go","looker","invalid-parameter","input-validation"],"backgroundTag":"invalid-argument-value","analyzedSha":"8cc6e09de2ad7b8bffc77751799585a1401a48eb","analyzedAt":"2026-09-05T01:10:36.887Z","contentChangedAt":"2026-09-05T01:10:36.887Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}