{"record":{"id":"e32b8a60b51a1da2","repo":"ginuerzh/gost","slug":"wrong-connection-type-e32b8a","errorCode":null,"errorMessage":"wrong connection type","messagePattern":"wrong connection type","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"socks.go","lineNumber":391,"sourceCode":"// Socks5MuxBindConnector creates a Connector for SOCKS5 multiplex bind client.\nfunc Socks5MuxBindConnector() Connector {\n\treturn &socks5MuxBindConnector{}\n}\n\nfunc (c *socks5MuxBindConnector) Connect(conn net.Conn, address string, options ...ConnectOption) (net.Conn, error) {\n\treturn c.ConnectContext(context.Background(), conn, \"tcp\", address, options...)\n}\n\n// NOTE: the conn must be *muxBindClientConn.\nfunc (c *socks5MuxBindConnector) ConnectContext(ctx context.Context, conn net.Conn, network, address string, options ...ConnectOption) (net.Conn, error) {\n\tswitch network {\n\tcase \"udp\", \"udp4\", \"udp6\":\n\t\treturn nil, fmt.Errorf(\"%s unsupported\", network)\n\t}\n\n\taccepter, ok := conn.(Accepter)\n\tif !ok {\n\t\treturn nil, errors.New(\"wrong connection type\")\n\t}\n\n\treturn accepter.Accept()\n}\n\ntype socks5MuxBindTransporter struct {\n\tbindAddr     string\n\tsessions     map[string]*muxSession // server addr to session mapping\n\tsessionMutex sync.Mutex\n}\n\n// SOCKS5MuxBindTransporter creates a Transporter for SOCKS5 multiplex bind client.\nfunc SOCKS5MuxBindTransporter(bindAddr string) Transporter {\n\treturn &socks5MuxBindTransporter{\n\t\tbindAddr: bindAddr,\n\t\tsessions: make(map[string]*muxSession),\n\t}\n}","sourceCodeStart":373,"sourceCodeEnd":409,"githubUrl":"https://github.com/ginuerzh/gost/blob/a33fdbf4c98034f4bfeeaea9868909822b9c526d/socks.go#L373-L409","documentation":"Returned by socks5MuxBindConnector.ConnectContext when the network argument does not match the connection types the multiplexed bind client can serve — the passed conn must be a *muxBindClientConn and only specific network strings are accepted. It signals a programming error in the caller (wrong network or wrong conn type), not a network failure.","triggerScenarios":"Thrown at socks.go:391 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a network value the mux bind connector supports (tcp family) instead of udp","Ensure the conn passed in is the *muxBindClientConn produced by the SOCKS5 mux bind dialer","Route UDP traffic through a UDP-capable connector such as the SOCKS5 UDP tunnel connector"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a33fdbf4c98034f4bfeeaea9868909822b9c526d","analyzedAt":"2026-09-02T22:15:54.506Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-10T02:17:09.455Z"}