{"record":{"id":"454c609359a42dd7","repo":"libnyanpasu/clash-nyanpasu","slug":"member-member-id-proxies-is-not-a-sequence-co","errorCode":null,"errorMessage":"member {member_id} `proxies` is not a sequence, contributed nothing","messagePattern":"member (.+?) `proxies` is not a sequence, contributed nothing","errorType":"console","errorClass":"StepLogEntry","httpStatus":null,"severity":"warning","filePath":"backend/nyanpasu-config/src/runtime/executor/compose.rs","lineNumber":131,"sourceCode":"        working = next;\n    }\n\n    Ok((builder, working))\n}\n\n/// 规则 3/4/7/8/9/10 + D11 宽容化（缺 proxies → WARN + 空；工作配置缺键 →\n/// 建列表；非序列 → WARN + 跳过，保留用户数据）。\npub(super) fn append_proxies(\n    working: &ConfigValue,\n    member: &ConfigValue,\n    member_id: &ProfileId,\n    logs: &mut Vec<StepLogEntry>,\n) -> ConfigValue {\n    let extracted: Vec<ConfigValue> = match obj_get(member, \"proxies\") {\n        Some(value) => match value.as_array_arc() {\n            Some(items) => items.to_vec(),\n            None => {\n                logs.push(StepLogEntry::warn(format!(\n                    \"member {member_id} `proxies` is not a sequence, contributed nothing\"\n                )));\n                Vec::new()\n            }\n        },\n        None => {\n            logs.push(StepLogEntry::warn(format!(\n                \"member {member_id} has no `proxies`, contributed nothing\"\n            )));\n            Vec::new()\n        }\n    };\n\n    match obj_get(working, \"proxies\") {\n        Some(value) => match value.as_array_arc() {\n            Some(items) => {\n                let mut next = items.to_vec();\n                next.extend(extracted);","sourceCodeStart":113,"sourceCodeEnd":149,"githubUrl":"https://github.com/libnyanpasu/clash-nyanpasu/blob/f7dbce2997c633e484f54788035e770b3ee99773/backend/nyanpasu-config/src/runtime/executor/compose.rs#L113-L149","documentation":"During config composition, a member profile's `proxies` field exists but is not an array/sequence (e.g. it is a string, mapping, or scalar). append_proxies logs this warning and the member contributes an empty list instead of failing the composition.","triggerScenarios":"run_composition → append_proxies: obj_get(member, \"proxies\") returns Some(value) but value.as_array_arc() returns None — the member document declares `proxies` with a non-sequence value.","commonSituations":"A hand-edited YAML/JSON profile where `proxies:` is followed by an indented mapping instead of a list, or `proxies: \"\"` / a scalar; a broken merge that flattened the list into an object; importing a profile from a tool that emits a different schema.","solutions":["Open the offending member profile and make `proxies` a YAML/JSON list of proxy objects","Validate profile schema before adding it to the composition","Check the warning log to identify which member_id is malformed","Re-export or re-download the profile from its subscription source"],"exampleFix":"# before (member profile)\nproxies:\n  name: my-proxy\n  type: ss\n# after\nproxies:\n  - name: my-proxy\n    type: ss","handlingStrategy":"type-guard","validationCode":"fn member_proxies_ok(member: &ConfigValue) -> bool {\n    matches!(obj_get(member, \"proxies\"), None | Some(v) if v.as_array_arc().is_some())\n}","typeGuard":"fn is_proxies_array(member: &ConfigValue) -> bool {\n    obj_get(member, \"proxies\").map_or(true, |v| v.as_array_arc().is_some())\n}","tryCatchPattern":"// append_proxies already degrades gracefully; assert at composition entry\nassert!(member_proxies_ok(&member), \"member {member_id} proxies must be a list\");","preventionTips":["Validate every member profile schema (proxies: list) before adding to a composition chain","Watch for YAML indentation mistakes that turn lists into mappings","Re-validate profiles after subscription updates"],"tags":["config","compose","schema","proxies"],"backgroundTag":"config-type-mismatch","analyzedSha":"f7dbce2997c633e484f54788035e770b3ee99773","analyzedAt":"2026-09-08T01:24:59.197Z","contentChangedAt":"2026-09-08T01:24:59.197Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}