Retry Queue
The retry queue handles conversions that fail because the GCLID is too new for Google Ads to recognize. Google Ads can take several hours to process new ad clicks. During this window, conversion uploads return a CLICK_NOT_FOUND error. The retry queue automatically re-attempts these uploads until the GCLID becomes available or the TTL expires.
How It Works
Queueing
When a conversion upload fails with CLICK_NOT_FOUND:
- The conversion is added to the
retry_queuetable with typegads_click_not_foundand statuspending. - The
retry_aftertimestamp is set to 30 minutes in the future. - The
max_attemptsis calculated from the configured Retry TTL (default 12 hours, retrying every ~30 min = ~24 attempts). - A conversion log entry is created with status
queued. - The webhook returns HTTP 200 with
{ success: true, queued: true }.
Processing
A cron job runs every 5 minutes and processes pending queue items:
- The cron handler queries for up to 10 items where
status = 'pending'andretry_afterhas passed. - Each item is marked as
processing. - The system checks if the Retry TTL has been exceeded. If so, the item is marked as
failed. - Otherwise, the Google Ads token is refreshed and the conversion is re-attempted via
uploadClickConversions. - On success, the item is marked as
completedand a success entry is written to the conversion log. - On failure, the item is rescheduled with
retry_afterset 30 minutes in the future.
Retry Limits
Each queue item tracks attempt_count against max_attempts. Once the maximum is reached, the item remains in failed status and is not retried automatically. Additionally, if the configured Retry TTL (hours since the item was first created) has been exceeded, the item fails immediately without attempting the upload.
The default TTL of 12 hours is recommended. Google typically processes clicks within 4-6 hours, but in rare cases it can take longer.
Configuration
Retry TTL (hours)
The retry TTL is configurable in Settings > Google Ads under the global settings section. The value is specified in hours.
| Setting | Default | Description |
|---|---|---|
| Retry TTL | 12 hours | How long to keep retrying after the initial CLICK_NOT_FOUND error. The queue retries every ~30 minutes within this window. |
Queue Management
The retry queue can be monitored and managed in Settings > Queues:
- View pending and failed items with their scheduled retry times and attempt counts.
- Reprocess Selected – Reset failed items to
pendingstatus to force a retry on the next cron cycle. - Remove Selected – Permanently delete items that should not be retried.
Queue Item Lifecycle
pending --> processing --> completed
|
v
failed --> (reprocess) --> pending
|
v
(max attempts or TTL expired -- stays failed)