Troubleshoot Service Binding Issues
After you create the API, you then bind your service with the API. This section provides possible causes for issues that might occur when you bind your service, and describes how to troubleshoot these errors:
Binding Name not in DNS Subdomain Standard Format
If you provide a DNS name that does not comply with the DNS subdomain standard format, an error occurs and the binding fails.
Diagnose
If the binding name you provided does not match the required format when you create the binding, the output of the command displays the binding failed error:
The ServiceBinding "customer-API" is invalid: metadata.name: Invalid value: "customer-API": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([a-z0-9])?(\.[a-z0-9]([-a-z0-9][a-z0-9])?)*')
References Nonexistent Instance Error
When you create a binding, you must reference an API or an adapter that you previously created using its name. Otherwise, you receive the 'ReferencesNonexistentInstance' error.
Causes
This error can occur if:
-
The adapter name in the binding command is incorrect (adapter binding).
-
The API name in the binding command is incorrect (API binding).
-
The Namespace flag was not provided and therefore the service was searched for in the
default
namespace.
Error Instance is Not Ready
Before you create a binding, the API provisioning task must be completed and the referenced API or adapter must be ready. Otherwise, you receive the 'ErrorInstanceNotReady' error.
Diagnose
To diagnose this issue, check the status of the referenced instance by using either of the following commands, depending on whether you are using an API or an adapter binding:
-
$ asmctl api list
-
$ asmctl adapter list
Solution
To resolve this issue:
-
If the adapter or API provisioning has not yet completed (
Provisioning
status), wait until the operation completes. -
If the status is
Failed
, review the corresponding troubleshooting section: -
To delete the API or adapter, delete the binding first.
-
Wait for the API or the adapter to be ready.
The status of the delete transaction must not be
Deleting
. -
After the API or the adapter is ready, re-create the binding.