In at least 2018.2 and possibly other versions there appears to be an undocumented bug that readback requests mess with the command buffer:
presentDrawable
which results in the screen not being updated, and the behavior differs between devices:The workaround is to move the readback request to the beginning of the next frame.
In some cases[research needed], the callback will be called but when attempting to call GetData, it will throw an exception.2)
The cause is unknown, it does not appear to be detectable beforehand. All AsyncGPUReadbackRequest properties indicate that it's a valid completed request. It seems to be safe to catch and ignore this exception.