Overview
A connection’s health can be affected by several categories of events, ranging from full disconnects that require fleet action to subtle ingestion-level issues that may only impact specific data types. Terminal provides tools across the API, webhooks, and dashboard to help you monitor and respond to each.| Category | Data Impact | Action Required | How It Surfaces |
|---|---|---|---|
| Disconnects | All data ingestion stops | Fleet must reconnect | Connection status, webhooks, email notifications |
| Sync failures | Data temporarily stale | Handled by Terminal | Sync status, webhooks |
| Ingestion issues | Specific data may be incomplete | Varies | Issues API, webhooks, dashboard |
Connection Disconnects
A disconnect occurs when a connection’s authentication is no longer valid. This is the most impactful health event because all data ingestion stops until the connection is restored.Common Causes
- Changed login credentials on the provider account
- Provider account expired or deactivated
- Revoked OAuth access (for OAuth-based providers)
How to Detect
Connection status: The connection’sstatus field changes to disconnected. You can check this via the API:
connection.disconnected event for real-time notification. The webhook payload includes a reconnection link you can surface to the fleet.
Dashboard: Disconnected connections are visible on the connections page with their current status.
How to Resolve
We recommend building workflows based on our supported webhooks to notify the fleet and invite them to reconnect.- Build an in-app or email based reconnection flow using the
connection.disconnectedwebhook - Monitor for the
connection.reconnectedevent to confirm restoration
Sync Failures
A sync failure occurs when Terminal encounters an error while attempting to fetch data from a provider. Unlike disconnects, the connection itself remains valid, but data may become temporarily stale.Common Causes
- Transient provider API errors or rate limiting
- Temporary provider outages or degradation
- Unexpected data format changes from the provider
How to Detect
Sync status: Monitor sync jobs via the API or thesync.failed webhook event.
sync.failed to detect failures in real-time.
How to Resolve
Most sync failures are transient and resolve automatically on the next sync cycle. Terminal’s ingestion pipeline includes built-in retry logic for common provider errors. If a failure persists across multiple sync cycles, Terminal’s engineering team will triage the issue to resolve. If you are seeing sync failures persist for multiple days, contact Terminal support for investigation.Sync failures are triaged and addressed by the Terminal team. You do not typically need to take action beyond monitoring.You can always reach out to Terminal support for clarification or questions about ongoing sync failures
Issues
Issues are the most granular category of connection health. They represent problems encountered during data ingestion that don’t fully block the sync but may cause specific data to be incomplete or unavailable. Unlike disconnects and sync failures, issues affect only a subset of the data for a connection. For example, a connection may successfully sync vehicles, drivers, and trips but report an issue indicating that HOS logs are inaccessible due to missing permissions.Issue Lifecycle
Each issue has a status that tracks its current state:| Status | Description |
|---|---|
ongoing | The issue was observed during a recent sync and continues to affect data |
resolved | The issue has not been observed recently and is considered resolved |
firstReportedAt and lastReportedAt timestamps track the issue’s history. Issues automatically resolve when they are no longer observed during syncs.
Issue Types
Terminal categorizes ingestion issues into the following types:Missing Permissions
The credentials used for a connection are missing the permissions or OAuth scopes necessary to access certain data. Example: A Motive application is missing thehos_logs.logs scope, so HOS logs cannot be ingested.
Resolution: The fleet or application owner needs to update the permissions on their provider account or OAuth application and reconnect.
Exceeded Retention Window
A sync requested data beyond the provider’s maximum retention period. The provider only stores a limited history, and the requested time range exceeds that limit. Example: Verizon Reveal enforces an account-specific data plan retention window. Requesting data with a start date earlier than the allowed retention date (for example, older than your plan’s configured history) will raise this issue. Resolution: This is informational. Adjust your sync’s time range to fall within the provider’s retention window, or accept that older data is unavailable from the provider.Invalid Source ID
A source identifier from the provider contains characters or formatting that is incompatible with the provider’s own API, preventing Terminal from querying data for that specific resource. Example: A vehicle number in Verizon Reveal contains special characters that the Verizon API cannot process. Resolution: The fleet should correct the identifier in their provider account.Unknown Device Type
For providers that return mixed asset types in a single data stream (e.g., vehicles, trailers, and other equipment), Terminal encountered an asset type it does not recognize as a vehicle or trailer. Example: In Geotab, the assets stream may include non-vehicle and non-trailer assets that Terminal skips during ingestion. Resolution: This is informational. Terminal skips unrecognized asset types to avoid ingesting incorrect data. If you believe an asset is being incorrectly skipped, contact support.Missing Safety Configuration
A safety event rule or configuration is disabled or missing in the provider’s system, preventing Terminal from ingesting related safety data. Example: An exception event rule in Geotab has been disabled, so related exception events cannot be ingested. Resolution: The fleet should re-enable the safety rule in their provider account if the data is needed.Inaccessible Data
Terminal was unable to fetch a specific piece of data due to a provider error or missing prerequisite data at extraction time. Example: Verizon Reveal driver safety may return a providerSystem Error - Please contact Fleetmatics Support. for a specific driver/day, causing Terminal to skip that time range as inaccessible data.
Resolution: This may resolve on its own if the underlying provider issue is transient. If the issue persists, the data may not be recoverable without support from the provider.
Monitoring Issues
API
Use the List Issues endpoint to query issues for a connection. You can filter by status, issue type, and date range.Webhooks
Subscribe to issue webhook events for real-time monitoring:issue.reported- Fired when a new issue is observed or a previously resolved issue recursissue.resolved- Fired when an ongoing issue is resolved
Dashboard
The Terminal dashboard provides a dedicated issues view for each connection on the Issues tab, showing issue type, status, message, and reporting timestamps.Resolving Issues Manually
You can manually mark an issue as resolved using the Resolve Issue endpoint. If the underlying problem still exists, the issue will be re-reported on the next sync.Recommended Monitoring Strategy
For production integrations, we recommend the following approach to connection health monitoring:-
Subscribe to key webhooks: At minimum, subscribe to
connection.disconnected,sync.failed, andissue.reportedevents to be notified of health changes in real-time. -
Surface disconnects to fleets: Use the
connection.disconnectedwebhook to trigger notifications to fleets with the reconnection link, either through your own product’s UI or by sending emails to fleets. -
Monitor ongoing issues: Periodically query the Issues API for
ongoingissues across your connections to identify persistent data quality problems that may need attention. -
Track sync health: Use
sync.completedandsync.failedwebhooks to monitor the overall health of your data pipeline and detect providers experiencing degradation.
Related Resources
- How to Sync Data - Guide to syncing and replicating data
- Disconnected Connections - Handling disconnected connections
- Issue Model - Full issue schema reference
- Webhooks - Setting up and managing webhooks
- List Issues API - Query issues via the API