3

Hoping some can please assist with the following express server error as unsure what to look for and why this type of error keeps on appearing. It is using a postgres db backend. It seems to also crash the server.

error: invalid input syntax for type integer: ""
    at Parser.parseErrorMessage (/home/app/server/node_modules/pg-protocol/dist/parser.js:278:15)
    at Parser.handlePacket (/home/app/server/node_modules/pg-protocol/dist/parser.js:126:29)
    at Parser.parse (/home/app/server/node_modules/pg-protocol/dist/parser.js:39:38)
    at Socket.<anonymous> (/home/app/server/node_modules/pg-protocol/dist/index.js:10:42)
    at Socket.emit (events.js:375:28)
    at addChunk (internal/streams/readable.js:290:12)
    at readableAddChunk (internal/streams/readable.js:265:9)
    at Socket.Readable.push (internal/streams/readable.js:204:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23) {
  length: 101,
  severity: 'ERROR',
  code: '22P02',
  detail: undefined,
  hint: undefined,
  position: undefined,
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'numutils.c',
  line: '323',
  routine: 'pg_strtoint32'
}

Is there something specific I need to look for based on this error: invalid input syntax for type integer ?

UPDATED - based on below comment, could the following insert query possibly cause this error?

const insertLogQuery = `
insert into log (log_id, run_id, s_id, q_id, message)
     values ($1, $2, $3, $4, $5)          
`;
const insertLog = await pool.query(insertLogQuery, [ id, null, null, null, reason ]);

where the columns: run_id, s_id and q_id are defined as integers.

If so, can someone pls let me know what the best approach is to prevent this error based on this code.

3
  • Yes. You have to look for conversions from string data types to integer in your (undisclosed) query. Your data will contain an empty string somewhere. Commented Aug 16, 2021 at 6:00
  • @LaurenzAlbe - I added an insert query that I think maybe causing the issue based on what you have mentioned. Unsure how to fix though, if this is the issue.
    – ArthurJ
    Commented Aug 16, 2021 at 6:45
  • You have to employ a process known as "debugging". Find out which column and which SQL statement causes the error, figure out the actual SQL statement issued and the parameters (for example, in the PostgreSQL log file). And so on. Commented Aug 16, 2021 at 8:44

0