CalCom.Error exception (cal_com v0.3.0)

Copy Markdown

The one failure shape every Cal.com call returns.

Callers branch on reason without reading a provider body: an HTTP 401 and a documented body-level refusal both arrive as a closed reason. The raw provider payload rides in payload so nothing is lost to the taxonomy — credential-shaped keys are stripped before it is stored.

The struct is an exception only so raise-free code can still hand it to supervisors and loggers with a readable message — this package never raises it for control flow.

Summary

Types

Why the call failed.

t()

The typed error carried by every failed Cal.com call.

Types

reason()

@type reason() ::
  {:rate_limited, kind :: atom(), resume_at :: DateTime.t() | nil}
  | :unauthorized
  | :forbidden
  | :not_found
  | :invalid_body
  | :invalid_cursor
  | :validation
  | :provider_error
  | {:http, pos_integer()}

Why the call failed.

:invalid_body means the response did not match its generated contract and payload names the field. :invalid_cursor means pagination metadata contradicted itself, repeated a page, or repeated a cursor.

t()

@type t() :: %CalCom.Error{__exception__: term(), payload: term(), reason: reason()}

The typed error carried by every failed Cal.com call.