Currently, the controllers don't (most of them) inspect the errors coming from the ngrok API and retry forever. With this PR, we'll look at the resulting error, and retry based on the error codes coming from the ngrok API:
server errors will be retried
rate limit errors will be retried with 1m backoff
controller specific errors are retried depending on the controller. Only the HTTPSEdge controller is currently retrying, specifically for the case where the domain for this edge wasn't found (which allows the domain controller to register it concurrently)
How
extract common controller functionality into the baseController
the baseController provides standardized error checking that can be customized by the concrete controller.
closes: #283
What
Currently, the controllers don't (most of them) inspect the errors coming from the ngrok API and retry forever. With this PR, we'll look at the resulting error, and retry based on the error codes coming from the ngrok API:
HTTPSEdge
controller is currently retrying, specifically for the case where the domain for this edge wasn't found (which allows the domain controller to register it concurrently)How
baseController
baseController
provides standardized error checking that can be customized by the concrete controller.Breaking Changes
None