Error hierarchy
Identical class names in both languages (instanceof-discriminable in TS):
API errors expose the envelope’s errorCode and message. EnginiToolExecutionError additionally carries error_message, execution_info, and history_id (errorMessage/executionInfo/historyId in TS).
The SDKs do not retry automatically. If your workload can hit rate limits or transient 5xx, wrap calls with your own retry/backoff and honor Retry-After on 429s.
You don’t page manually: every list-style method auto-paginates internally and returns the complete array (tools.get, connections.list, connections.objects, applications.list, toolsets.list). Use the REST API directly with offset/top if you need manual paging over very large sets - see the pagination contract.