Circuit Create Error Codes
The most fundamental action of a working OpenZiti instance is the dialing of services to create connections and pass data. This action crosses a few borders, but the central process is the creation of a fabric circuit to carry the traffic between the initiating edge node (SDK embedded application, client, tunneler, etc.) and the terminating edge node. When this process fails, it is important to understand why it failed, to properly troubleshoot the issue. Below is a table of the various cause codes emitted by the controller, and a brief description of the context of the error.
Circuit Create Error / Failure Cause | Description |
---|---|
CircuitFailureInvalidService / INVALID_SERVICE | The service identity given to the controller in the connection request is not found in the controller's configuration database . The endpoint has gotten out of sync with the controller, most likely due to very near term changes, or failure of the client software to properly process service changes. |
CircuitFailureIdGenerationError / ID_GENERATION_ERR | The circuit identity generation function has failed to generate and return a circuit identity string |
CircuitFailureNoTerminators / NO_TERMINATORS | The service requested in the connection request has no terminators. This is normally indicative of a hosting device having lost connection to the network, either due to process, network, or power issues. The controller is unable to create a path. |
CircuitFailureNoOnlineTerminators / NO_ONLINE_TERMINATORS | The only terminators in the controller network map are hosted by routers that are currently in an offline state. |
CircuitFailureNoPath / NO_PATH | During the routing evaluation, no path was calculable between the initiating and terminating devices. |
CircuitFailurePathMissingLink / PATH_MISSING_LINK | There is no set of links that can create a valid path from the initiating router to the terminator. This may be caused by link failures, router failures, or policies the preclude certain paths. |
CircuitFailureInvalidStrategy / INVALID_STRATEGY | There are multiple routing strategies allowed, though at this time, only smart routing is in use. This failure would indicate that a service has a routing strategy defined that the controller is unaware of. |
CircuitFailureStrategyError / STRATEGY_ERR | This indicates that the service's defined routing strategy returned an error not otherwise captured |
CircuitFailureRouterErrGeneric / ROUTER_ERR_GENERIC | Failure on route creation not otherwise captured |
CircuitFailureRouterErrInvalidTerminator / ROUTER_ERR_INVALID_TERMINATOR | The service requested in the connection request has no online terminators. This is normally indicative of a terminator state problem, where the controller believes there is a valid terminator, however, the device hosting that terminator has responded that the terminator is not valid |
CircuitFailureRouterErrMisconfiguredTerminator / ROUTER_ERR_MISCONFIGURED_TERMINATOR | The data object for the terminator is not correctly formatted or otherwise unusable, resulting in an inability of the system to properly utilize the terminator to create a fabric circuit |
CircuitFailureRouterErrDialTimedOu / ROUTER_ERR_DIAL_TIMED_OUT | The dial from the terminating host to the socket configured for the service experienced a timeout when attempting to connect. This is most likely caused by a routing or service issue preventing the TCP or UDP connection from the hosting device to the configured service definition. |
CircuitFailureRouterErrDialConnRefused / ROUTER_ERR_CONN_REFUSED | The dial from the terminating host to the socket configured for the service received a TCP reset (RST) packet when attempting to connect. This is most likely caused by a routing or service issue preventing the TCP or UDP connection from the hosting device to the configured service definition. |