convert_qwen35.py unconditionally reads lm_head.weight:
write("lm_head", get("lm_head.weight").T)
When a Qwen checkpoint ties its input/output embeddings, there is no lm_head.weight tensor, so get() raises KeyError and conversion aborts.
The sibling convert_gguf.py already handles this case with a tied fallback to the input embedding (output.weight -> token_embd.weight). convert_qwen35.py should do the same: when lm_head.weight is absent, fall back to model.embed_tokens.weight (identical [vocab, hidden] layout).
convert_qwen35.pyunconditionally readslm_head.weight:When a Qwen checkpoint ties its input/output embeddings, there is no
lm_head.weighttensor, soget()raisesKeyErrorand conversion aborts.The sibling
convert_gguf.pyalready handles this case with a tied fallback to the input embedding (output.weight->token_embd.weight).convert_qwen35.pyshould do the same: whenlm_head.weightis absent, fall back tomodel.embed_tokens.weight(identical[vocab, hidden]layout).