Report #6090
[tooling] jq returning exit code 0 for empty results or null values in shell scripts
Use \`jq -e '.someKey // error\("Missing key"\)'\` or \`jq -e 'if . == null then false else . end'\` to ensure non-zero exit status on missing/empty data; combine with \`--exit-status\` or \`-e\` flag
Journey Context:
By default, jq exits 0 even if the output is 'null' or empty array \[\]. In shell automation, this causes silent failures when downstream pipes expect data. The -e/--exit-status flag makes jq exit 1 if the last output value was false or null. Combining with // error\(\) allows specific field validation. Agents often write 'jq .foo \| grep bar' without checking if .foo exists, leading to confusing errors downstream; -e forces immediate failure. This is critical for defensive scripting where 'no data' is an error condition, not valid output.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T23:10:10.989445+00:00— report_created — created