{"record":{"id":"d90c142be17a7ea4","repo":"fish2018/pansou","slug":"intermediate-action-id","errorCode":null,"errorMessage":"未能验证intermediate_action_id","messagePattern":"未能验证intermediate_action_id","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"plugin/panyq/panyq.go","lineNumber":524,"sourceCode":"\t\n\t// 从后向前验证\n\tfor i := len(remainingIDs) - 1; i >= 0; i-- {\n\t\tid := remainingIDs[i]\n\t\tif DebugLog {\n\t\t\tfmt.Printf(\"panyq: 尝试第 %d 个剩余ID作为intermediate_action_id: %.10s...\\n\", i+1, id)\n\t\t}\n\t\tif p.validateIntermediateID(id, testCreds.Hash, testCreds.Sha) {\n\t\t\tfinalIDs[ActionIDKeys[1]] = id\n\t\t\tintermediateIDFound = true\n\t\t\tif DebugLog {\n\t\t\t\tfmt.Printf(\"panyq: 找到有效的intermediate_action_id: %s\\n\", id)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\t\n\tif !intermediateIDFound {\n\t\treturn nil, fmt.Errorf(\"未能验证intermediate_action_id\")\n\t}\n\t\n\t// 获取测试EID\n\ttestHits, _, err := p.getSearchResults(testCreds.Sign, 1, p.client) // 获取第一页测试结果\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"获取测试结果失败: %w\", err)\n\t}\n\t\n\tif len(testHits) == 0 {\n\t\treturn nil, fmt.Errorf(\"获取测试EID失败: 无搜索结果\")\n\t}\n\t\n\ttestEID := testHits[0].EID\n\t\n\tif DebugLog {\n\t\tfmt.Printf(\"panyq: 获取到测试EID: %s\\n\", testEID)\n\t}\n\t","sourceCodeStart":506,"sourceCodeEnd":542,"githubUrl":"https://github.com/fish2018/pansou/blob/beaa56133755a548ebc51b090b3816e2ae044aa6/plugin/panyq/panyq.go#L506-L542","documentation":"discoverActionIDs could not validate the intermediate_action_id: after probing the candidate IDs, no candidate satisfied the intermediate-ID verification check, so intermediateIDFound stayed false. Discovery aborts because the full ID set (credential, intermediate, final link) is required.","triggerScenarios":"Running discoverActionIDs when none of the remaining candidate IDs passes the intermediate-ID probe — upstream changed the intermediate ID, all candidates were consumed by earlier validations, or each probe call errored/returned an unexpected shape.","commonSituations":"Upstream site updated its ID set so the expected intermediate ID no longer exists among extracted candidates; site layout change reduced candidate extraction; network errors during probes.","solutions":["Clear the action ID cache and re-run discovery to extract a fresh candidate set.","Enable DebugLog to inspect which candidates were probed and why each failed verification.","Manually verify the expected intermediate-ID behavior against the live site (curl).","Update the plugin to match the new upstream ID scheme."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"ids, err := plugin.DiscoverActionIDs()\nif err != nil && strings.Contains(err.Error(), \"未能验证intermediate_action_id\") {\n    plugin.InvalidateActionIDCache()\n    ids, err = plugin.DiscoverActionIDs() // re-extract candidates\n}","preventionTips":["Invalidate cache on validation failure","Log each candidate probe outcome","Watch for upstream ID scheme changes","Space out probes to avoid blocks"],"tags":["action-id","verification","upstream","plugin"],"backgroundTag":"unexpected-api-response-shape","analyzedSha":"beaa56133755a548ebc51b090b3816e2ae044aa6","analyzedAt":"2026-09-07T00:31:18.025Z","contentChangedAt":"2026-09-07T00:31:18.025Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}