The usefulness of immediate and correct error is primarily in interactive/exploration use. Once the client code is written and developer knows which exceptions to expect (and which fields are not to be touched), it's fine.

But during interactive use or learning about the SDK, they won't get an exception object in repl to inspect the developerMessage for - they'll more likely do something like:

    > account.custom_data['meta'] = ...some client-specific meta... # everthing fine here
    > ...
    > account.save()
    Error: Oops! We encountered an unexpected error
   > # "WTF?"

If this happens while you're just learning your way around (that part of) the SDK, would it be helpful? Who knows what might've gone wrong!

Contrast with:

    > account.custom_data['meta'] = ...some client-specific meta... # everthing fine here
    KeyError: Custom data property 'meta' is not writable
    > # "Ah, ok, good to know!"

If you think I've blew the usefulness of this out of proportio, we'll be happy to change as originally requested, but I feel strongly that in Python the latter is better behaviour.