Troubleshoot API Code 999 Message Caused by AGMS Delay
Problem
When an API response shows the internal code 999, it does not indicate an error. The API returns this informational message when it cannot confirm job completion within the wait time.
You receive the 999 code in responses similar to the following:
XML
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2025-03-16T18:43:21Z</DATETIME>
<CODE>999</CODE>
<TEXT>The job completion status has not been returned for Job ID 222021315. Please check the status in the Qualys UI by using the Asset Management Tasks filter on the Address Management tab.</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
This message indicates that the API servers cannot confirm job completion within the expected wait time. In most cases, the job completes successfully even if it takes longer than expected.
Cause
The API returns code 999 when the Asset Group Management Service (AGMS) takes longer than expected to process a request.
AGMS processing may take additional time due to:
- High processing load
- Temporary service latency
- Large or complex requests
API Request Processing Workflow
When you run an Asset Group API call, the platform processes the request as follows:
- Run an Add or Edit Asset Group API or another Asset Group API call.
- The platform forwards the request to the Asset Management Service (AGMS).
- GMS creates an internal job to process the changes.
- The platform assigns a unique Job ID to the task.
- The API waits for the job to finish.
If processing takes longer than the API wait time, the API stops waiting and returns code 999 while the job continues to process in the background.
Solution
There is no need to take immediate action when you receive code 999. You can wait for the process to complete and retry the request later. Verify Task Completion in the UI
To confirm that the task completes successfully:
- Open the VMDR module.
- Go to Assets > Address Management.
- Apply the Asset Management Tasks filter.
- Verify the following details in the Asset Management Task page:
- Operation: type of action performed (for example, adding IPs to an asset group or editing an asset group).
- Job Created On: date and time when the task was initiated.
- Job Updated On: the most recent date and time when the task status was updated.
- Job Status: current status of the task, such as In Progress or Completed.
- Search for a task using the Job ID from the API response and check the Job Status:
- Completed: The task finished successfully.
- In Progress/Pending: The task is still processing.
- Failed: The task requires further investigation.