jackc/pgx · error

unexpected DataRow message without preceding RowDescription

Error message

unexpected DataRow message without preceding RowDescription

What it means

Error "unexpected DataRow message without preceding RowDescription" thrown in jackc/pgx.

Source

Thrown at pgconn/pgconn.go:1657

				mrr.statementDescriptions = mrr.statementDescriptions[1:]

				resultFormats := mrr.resultFormats[0]
				mrr.resultFormats = mrr.resultFormats[1:]

				sdFields := sd.Fields
				rr.fieldDescriptions = rr.pgConn.getFieldDescriptionSlice(len(sdFields))

				err := combineFieldDescriptionsAndResultFormats(rr.fieldDescriptions, sdFields, resultFormats)
				if err != nil {
					rr.concludeCommand(CommandTag{}, err)
				}

				mrr.pgConn.resultReader = rr
				mrr.rr = &mrr.pgConn.resultReader
				return true
			}

			mrr.err = fmt.Errorf("unexpected DataRow message without preceding RowDescription")
			return false
		}

		msg, err := mrr.receiveMessage()
		if err != nil {
			return false
		}

		switch msg := msg.(type) {
		case *pgproto3.RowDescription:
			mrr.pgConn.resultReader = ResultReader{
				pgConn:            mrr.pgConn,
				multiResultReader: mrr,
				ctx:               mrr.ctx,
				fieldDescriptions: mrr.pgConn.getFieldDescriptionSlice(len(msg.Fields)),
			}
			convertRowDescription(mrr.pgConn.resultReader.fieldDescriptions, msg)

View on GitHub (pinned to ec1a0befd2)

When it happens

Trigger: Thrown at pgconn/pgconn.go:1657 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jackc/pgx@ec1a0befd2 (2026-08-04). Data as JSON: /data/errors/9b8a48ff8c0df531.json. Report an issue: GitHub.