The scanned circle was read as the first start/end pair that differs,
and two_theta is the first pair in the goniostat block. A file that
leaves its end block at zero while the detector sits on a swung-out
2-theta arm therefore named the arm as the spindle and stopped before
reaching phi; with no rotation range recorded either, the increment fell
back to -start_angle, which differs per frame, and the sweep was refused
outright.
The header's own rotation_axis index (offset 732) is taken where it
names a spindle circle, and the pair scan is the fallback for files that
never filled it in - read past two_theta, which no sweep turns.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nW6FNRP1bBJJ8pfHiByAT