Investigation
Symptoms
A statement failed with SQLSTATE 24000 (invalid_cursor_state), reported at severity ERROR. This is a Invalid Cursor State condition: PostgreSQL emits the message portal "…" does not return tuples.
- The client receives SQLSTATE
24000(invalid cursor state). - The operation is rejected at
ERRORlevel; the statement does not complete.
What the server log shows
ERROR: portal "…" does not return tuples
Why PostgreSQL raises this
PostgreSQL raises this error from the area indicated by its SQLSTATE class. The condition name pinpoints the specific rule that was violated.
As described in PostgreSQL’s Appendix A PostgreSQL Error Codes, SQLSTATE 24000 carries the condition name invalid_cursor_state in class Invalid Cursor State. (Paraphrased — see the linked reference for the exact wording.)
Common causes
- The operation violated the rule named by this SQLSTATE condition.
- An input, object, or state did not satisfy a precondition.
How to fix it
- Use the SQLSTATE condition name to identify the exact rule.
- Correct the offending input, object, or state and retry.
- See the linked full SQLSTATE reference for detailed guidance.
Version applicability
This message is present in PostgreSQL 15, 16, 17, 18 and 19.
Related & next steps
Reference: PostgreSQL Appendix A PostgreSQL Error Codes.
Related & next steps
Thanks — noted. This helps keep the database accurate.