AlistGo/alist · error

xml: encoding %q declared but Decoder.CharsetReader is nil

Error message

xml: encoding %q declared but Decoder.CharsetReader is nil

What it means

Error "xml: encoding %q declared but Decoder.CharsetReader is nil" thrown in AlistGo/alist.

Source

Thrown at server/webdav/internal/xml/xml.go:618

			if b0 == '?' && b == '>' {
				break
			}
			b0 = b
		}
		data := d.buf.Bytes()
		data = data[0 : len(data)-2] // chop ?>

		if target == "xml" {
			content := string(data)
			ver := procInst("version", content)
			if ver != "" && ver != "1.0" {
				d.err = fmt.Errorf("xml: unsupported version %q; only version 1.0 is supported", ver)
				return nil, d.err
			}
			enc := procInst("encoding", content)
			if enc != "" && enc != "utf-8" && enc != "UTF-8" {
				if d.CharsetReader == nil {
					d.err = fmt.Errorf("xml: encoding %q declared but Decoder.CharsetReader is nil", enc)
					return nil, d.err
				}
				newr, err := d.CharsetReader(enc, d.r.(io.Reader))
				if err != nil {
					d.err = fmt.Errorf("xml: opening charset %q: %v", enc, err)
					return nil, d.err
				}
				if newr == nil {
					panic("CharsetReader returned a nil Reader for charset " + enc)
				}
				d.switchToReader(newr)
			}
		}
		return ProcInst{target, data}, nil

	case '!':
		// <!: Maybe comment, maybe CDATA.
		if b, ok = d.mustgetc(); !ok {

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Send a well-formed XML 1.0 request body with a supported encoding and retry.

When it happens

Trigger: Thrown at server/webdav/internal/xml/xml.go:618 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15). Data as JSON: /api/errors/7389bd12253cf4f5. Report an issue: GitHub.