Core API functions ought to have consistent method to return errors to developers code. Currently some functions return errors, and others do not.
Considerations:
- This will require C-bindings to be updated
- UX impacts. What is the most ergonomic way to pass errors across the FFI to C?