Upon further investigation, job-state can stay in 'processing' forever. I need to examine 'job-state-reasons' to find out why it hasn't printed yet. Unfortunately, this isn't included in the GetJobs2 call >:(
Performing a survey of observed failure modes: go/printer-error-matrix
It looks like timing out network requests and checking for jobs that complete without printing any pages covers most errors.
Comment 1 by skau@chromium.org
, Jan 31 2017