{"record":{"id":"4e4dd1308be1b94d","repo":"alibaba/arthas","slug":"unsupported-action-ttaction-supported-actions","errorCode":null,"errorMessage":"Unsupported action: ${ttAction}. Supported actions: record(t), list(l), info(i), search(s), replay(p), delete(d), deleteAll(da)","messagePattern":"Unsupported action: (.+?)\\. Supported actions: record\\(t\\), list\\(l\\), info\\(i\\), search\\(s\\), replay\\(p\\), delete\\(d\\), deleteAll\\(da\\)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/com/taobao/arthas/core/mcp/tool/function/monitor200/TimeTunnelTool.java","lineNumber":96,"sourceCode":"                cmd = buildListCommand(cmd, searchExpression);\n                break;\n            case \"info\":\n                cmd.append(\" -i \").append(index);\n                break;\n            case \"search\":\n                cmd.append(\" -s '\").append(searchExpression.trim()).append(\"'\");\n                break;\n            case \"replay\":\n                cmd.append(\" -i \").append(index).append(\" -p\");\n                break;\n            case \"delete\":\n                cmd.append(\" -i \").append(index).append(\" -d\");\n                break;\n            case \"deleteall\":\n                cmd.append(\" --delete-all\");\n                break;\n            default:\n                throw new IllegalArgumentException(\"Unsupported action: \" + ttAction +\n                        \". Supported actions: record(t), list(l), info(i), search(s), replay(p), delete(d), deleteAll(da)\");\n        }\n\n        return executeStreamable(toolContext, cmd.toString(), execCount, DEFAULT_POLL_INTERVAL_MS, timeoutSeconds * 1000,\n                \"TimeTunnel recording completed successfully\");\n    }\n\n    /**\n     * 验证参数\n     */\n    private void validateParameters(String action, String classPattern, String methodPattern, \n                                   Integer index, String searchExpression) {\n        switch (action) {\n            case \"record\":\n                if (classPattern == null || classPattern.trim().isEmpty()) {\n                    throw new IllegalArgumentException(\"classPattern is required for record operation\");\n                }\n                if (methodPattern == null || methodPattern.trim().isEmpty()) {","sourceCodeStart":78,"sourceCodeEnd":114,"githubUrl":"https://github.com/alibaba/arthas/blob/21cf2e9ba52b305290be7223b980ff504bb9cb5b/core/src/main/java/com/taobao/arthas/core/mcp/tool/function/monitor200/TimeTunnelTool.java#L78-L114","documentation":"Defensive fallback in the main command-building switch of TimeTunnelTool. In normal flow this is unreachable because validateParameters (called at line 66, before this switch) already rejects unknown actions at line 138 with the same kind of message. It exists as a safety net against logic gaps between validateParameters and the switch cases.","triggerScenarios":"Cannot be reached through the public timeTunnel entry point under normal control flow. Would require bypassing validateParameters or a future code change that desynchronizes the two switch statements.","commonSituations":"Dead-code guard. Encountering it indicates an internal bug where validateParameters and the main switch disagree on the set of valid actions.","solutions":["Use a valid tt action: record, list, info, search, replay, delete, or deleteAll (plus their aliases t/l/i/s/p/d/da).","The earlier validation error at line 138 (error 115) will normally fire first with a clearer message.","Report as an internal bug if this specific line is reached."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// This line is defensively unreachable; validate action before calling tt\nSet<String> valid = Set.of(\"record\",\"list\",\"info\",\"search\",\"replay\",\"delete\",\"deleteall\");\nif (!valid.contains(normalizedAction)) {\n    throw new IllegalArgumentException(\"Unsupported tt action: \" + normalizedAction);\n}","typeGuard":null,"tryCatchPattern":"// Normally unreachable via the public API.\n// validateParameters (error 115) catches unknown actions first.\ntry {\n    String result = timeTunnel(action, ...);\n} catch (IllegalArgumentException e) {\n    // any 'Unsupported action' from tt indicates an invalid action value\n}","preventionTips":["Use valid tt actions or their aliases (record/t, list/l, info/i, search/s, replay/p, delete/d, deleteAll/da).","Treat reaching this specific line as an internal bug to report."],"tags":["tt","defensive-guard","validation","arthas-mcp"],"backgroundTag":null,"analyzedSha":"21cf2e9ba52b305290be7223b980ff504bb9cb5b","analyzedAt":"2026-08-14T00:57:07.243Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}