neondatabase/neon · critical

aborting...

Error message

aborting...

What it means

The second line printed by ExceptionalCondition in the walproposer compat layer, emitted immediately before exit(1). It is not an independent failure: it always accompanies the preceding 'ExceptionalCondition: file:line: condition' line and only announces that the process is terminating because of it.

Source

Thrown at pgxn/neon/walproposer_compat.c:21

 * This is needed to avoid linking to full postgres server installation. This file
 * is compiled as a part of libwalproposer static library.
 */
#include "postgres.h"

#include <stdio.h>

#include "libpq/pqformat.h"
#include "miscadmin.h"
#include "utils/datetime.h"
#include "walproposer.h"

void
ExceptionalCondition(const char *conditionName,
					 const char *fileName, int lineNumber)
{
	fprintf(stderr, "ExceptionalCondition: %s:%d: %s\n",
			fileName, lineNumber, conditionName);
	fprintf(stderr, "aborting...\n");
	exit(1);
}

void
pq_copymsgbytes(StringInfo msg, char *buf, int datalen)
{
	if (datalen < 0 || datalen > (msg->len - msg->cursor))
		ExceptionalCondition("insufficient data left in message", __FILE__, __LINE__);
	memcpy(buf, &msg->data[msg->cursor], datalen);
	msg->cursor += datalen;
}

/* --------------------------------
 *		pq_getmsgint	- get a binary integer from a message buffer
 *
 *		Values are treated as unsigned.
 * --------------------------------
 */

View on GitHub (pinned to 8f60b04da4)

Solutions

  1. Locate the 'ExceptionalCondition:' line above this message and investigate that file:line
  2. Restart the process via its supervisor after fixing the underlying cause
  3. Check version compatibility between the walproposer peers and capture logs for a report

Example fix

# before: safekeeper run bare, dies silently after the assertion
# after: supervised restart while the root cause is investigated
[Service]
Restart=on-failure
RestartSec=5
Defensive patterns

Strategy: fallback

Prevention

When it happens

Trigger: Always printed together with the ExceptionalCondition message when any assertion in the standalone walproposer fails, e.g. malformed WAL protocol input to pq_copymsgbytes or unsupported integer widths in pq_getmsgint.

Common situations: Safekeeper or walproposer processes found dead with 'aborting...' as the last log line; the actionable detail is on the line above it.

Related errors


AI-assisted analysis of neondatabase/neon@8f60b04da4 (2026-08-16). Data as JSON: /api/errors/956609865ded8a80. Report an issue: GitHub.