Files
mdrs-client-python/mdrsclient/exceptions.py
T
orrisroot e5c28835b8 feat(auth): send a request again when its token lapsed in the queue
A request can wait to be served for longer than the access token it was
sent with lives, and comes back refused for a token that was valid when
it left. Uploads that take minutes make that wait ordinary.

- tell an expired token apart from any other refusal by the code the
  API returns, and retry only that one, once
- prefer a token another process left behind over minting a second: it
  saves a round trip, and a rotating provider would retire one that is
  still in use. Assign it rather than read it, since the setter is what
  rewrites the session header the retry will carry
- settle the token before the request so the one compared afterwards is
  the one that was actually sent
- report an overloaded server when the second attempt is refused too,
  and let API errors out of the upload path with their own type
2026-08-14 18:37:41 +09:00

53 lines
1.1 KiB
Python

class MDRSException(Exception):
"""Thrown when some kind of errors occurred"""
pass
class IllegalArgumentException(MDRSException):
"""Thrown when something wrong with the argument is passed to a method"""
pass
class MissingConfigurationException(MDRSException):
"""Thrown when wrong or missing system configuration"""
pass
class BadRequestException(MDRSException):
"""Thrown when the request does not contain valid parameter"""
pass
class UnauthorizedException(MDRSException):
"""Thrown when the current user not allowed to perform an operation on the resource"""
pass
class TokenExpiredException(UnauthorizedException):
"""Thrown when the access token was still valid when sent but had expired on arrival"""
pass
class ServerBusyException(MDRSException):
"""Thrown when the server did not start handling a request before its token lapsed"""
pass
class ForbiddenException(MDRSException):
"""Thrown when the current user does not have enough privileges to access the resource"""
pass
class UnexpectedException(MDRSException):
"""Thrown when unexpected error occurred"""
pass