Troubleshoot failed contact updates
When you call the UpdateContact API, AWS Ground Station performs
synchronous validation on the request. If validation passes, the update is processed
asynchronously to propagate changes to the antenna region. Synchronous validation errors
are returned directly in the HTTP response. Asynchronous failures are reported through
failureCodes and failureMessage fields on the contact version,
which you can view by calling DescribeContactVersion for the
version that failed to update.
For more information about contact versioning, see Update contacts and contact versioning.
Synchronous validation errors
The following errors are returned directly in the HTTP response when the UpdateContact request fails validation.
ResourceNotFoundException: Contact not found
Common cause
The specified contactId does not exist or belongs to a different
AWS account.
Resolution
-
Verify that the
contactIdis correct. -
Confirm that you are using credentials for the AWS account that owns the contact.
-
Use ListContacts to find the correct
contactId.
ConflictException: Cannot update contact
Common cause
The contact is in a state that does not allow updates. The UpdateContact
API can only be called when the contact is in the SCHEDULED,
PREPASS, or PASS state. This error also occurs if another
update is already in progress (the latest contact version is in the
UPDATING state).
Resolution
-
Call DescribeContact to check the current contact status.
-
If the contact is in a terminal state (for example,
COMPLETED,FAILED, orCANCELLED), it cannot be updated. A contact can only be updated when it is in theSCHEDULED,PREPASS, orPASSstate. For a complete list of terminal states, see AWS Ground Station contact statuses. -
If another update is in progress, wait for the current update to reach
ACTIVEorFAILED_TO_UPDATEstatus before submitting another update. You can poll the DescribeContactVersion API, or use theContactUpdatedwaiter convenience utilities provided by some AWS SDKs and the AWS Command Line Interface.
InvalidParameterException: Invalid request parameters
Common cause
The request contains invalid parameters. Common causes include:
-
Missing or empty
clientToken. -
Multiple types of
ProgramTrackSettings(azimuth/elevation, OEM, and TLE) included in a single request. Only one type is allowed per request. -
Setting
satelliteArnto null without being approved for azimuth elevation ephemeris at the contact's ground station. -
Missing
AzElProgramTrackSettingswhensatelliteArnis null. -
Providing an
ephemerisIdthat is not associated with the specifiedsatelliteArn. -
The satellite does not have a valid visibility window from the ground station for the contact time range.
-
The satellite is not onboarded to the ground station or does not have the licensing required by the mission profile.
-
The mission profile includes Antenna Downlink Demod Decode Config configs, which are not supported for contact updates.
Resolution
-
Review the error message in the response for details about which parameter is invalid.
-
Ensure you provide exactly one type of
ProgramTrackSettingsper request. -
If using azimuth/elevation pointing angles without a
satelliteArn, confirm that your account is approved for this capability at the ground station. For more information, see Provide azimuth elevation ephemeris data. -
Verify that the ephemeris you reference is associated with the correct satellite and covers the contact time range.
ResourceLimitExceededException: Maximum version limit reached
Common cause
The contact has reached the maximum number of versions (128). Each call to UpdateContact creates a new version, and a contact cannot exceed this limit.
Resolution
-
This limit cannot be increased. If you need to make further changes, cancel the contact and reserve a new one.
Asynchronous failure codes
The following failure codes appear in the failureCodes field of a contact
version with a FAILED_TO_UPDATE status. Use DescribeContactVersion to
retrieve these details. The failureMessage field provides additional
context about the failure.
| Failure code | Common cause | Resolution |
|---|---|---|
INTERNAL_ERROR |
An unexpected internal error occurred while processing the update. | Retry the update. If the issue persists, contact
AWS Support |
INVALID_SATELLITE_ARN |
The satellite ARN provided in the update request is not valid or does not exist. | Verify the satellite ARN and confirm that the satellite is registered in your account. |
INVALID_UPDATE_CONTACT_REQUEST |
The update request contains invalid parameters that were not caught during synchronous validation. | Review the failureMessage for details and correct the
request parameters. |
EPHEMERIS_NOT_FOUND |
The ephemeris referenced in the tracking overrides does not exist. | Verify the ephemerisId and confirm that the ephemeris has
not been deleted. |
EPHEMERIS_TIME_RANGE_INVALID |
The ephemeris does not cover the time range of the contact. | Upload a new ephemeris that covers the full contact time range. If the ephemeris time range cannot be extended, cancel the contact and reserve a new one during the time span of the ephemeris. For more information, see Provide custom ephemeris data. |
EPHEMERIS_NOT_ENABLED |
The referenced ephemeris is not in an ENABLED state. |
Check the ephemeris status and enable it before retrying the update. |
SATELLITE_DOES_NOT_MATCH_EPHEMERIS |
The ephemeris is not associated with the satellite specified in the update request. | Ensure the ephemerisId belongs to the satellite specified
in satelliteArn. |
NOT_ONBOARDED_TO_AZEL_EPHEMERIS |
Your account is not approved to use azimuth elevation ephemeris data at the contact's ground station. Azimuth elevation ephemeris is a restricted feature available for a limited number of specialized use cases. | If azimuth elevation ephemeris is required for your use case, open an
AWS Support ticket through the AWS Support Center Console |
AZEL_EPHEMERIS_NOT_FOUND |
The azimuth elevation ephemeris referenced in the request does not exist. | Verify the ephemerisId and confirm that the
azimuth elevation ephemeris has not been deleted. |
AZEL_EPHEMERIS_WRONG_GROUND_STATION |
The azimuth elevation ephemeris was created for a different ground station than the one used by the contact. | Upload a new azimuth elevation ephemeris for the correct ground station, or use an existing ephemeris that matches the contact's ground station. |
AZEL_EPHEMERIS_INVALID_STATUS |
The azimuth elevation ephemeris is not in a valid state for use. | Check the ephemeris status. It must be in an ENABLED state.
If the ephemeris failed validation, upload a corrected version. |
AZEL_EPHEMERIS_TIME_RANGE_INVALID |
The azimuth elevation ephemeris does not cover the time range of the contact. | Upload a new azimuth elevation ephemeris that covers the full contact time range. If the ephemeris time range cannot be extended, cancel the contact and reserve a new one during the time span of the ephemeris. |
Checking the status of an update
After calling UpdateContact, the new contact version starts in the
UPDATING state. During this time, DescribeContact continues to return
the previously active version of the contact. The new version does not appear in
DescribeContact until it has been propagated to the antenna and reaches
ACTIVE status. To check the status of a specific version, use
DescribeContactVersion.
To determine whether an update succeeded or failed:
-
Call DescribeContactVersion with the
contactIdandversionIdreturned by theUpdateContactresponse. -
Check the
version.statusfield. A status ofACTIVEmeans the update was applied successfully. A status ofFAILED_TO_UPDATEmeans the update failed. -
If the status is
FAILED_TO_UPDATE, check theversion.failureCodesandversion.failureMessagefields for details about what went wrong.
Tip
Some AWS SDKs and the AWS Command Line Interface support a ContactUpdated waiter that
automatically polls DescribeContactVersion until the version reaches
ACTIVE or FAILED_TO_UPDATE status. For example, the
AWS Command Line Interface provides an
aws groundstation
wait contact-updated command. Use the waiter instead of implementing your
own polling logic.