Previously when the content API returned a non-ok response,
saveField would set error state but still resolve the promise.
This caused downstream code to think save succeeded when it failed.
Now properly extracts error message from response and throws.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>