Error Messages

Trying to log in with an expired ThingSpace token: { “fault”: { “code”: “900901”, “message”: “Invalid Credentials”, “description”: “Access failure for API: /m2m/v1, version: v1. Make sure your have given the correct access token” } }

expired VZ-M2M token { “error”: “unauthorized”, “error_description”: “Failure response received for UWS V1 REST accounts: [400]“, “cause”: “Requested service is unauthorized for given token” }

Bad format for ThingSpace token: { “error”: “internal_server_error”, “error_description”: “configuration on Device field failed with Error: unauthorized: Failure response received for UWS V1 REST accounts: [401], Requested service is unauthorized for given token”, “cause”: “Requested service failed due to internal error” }

trying to add device without billingaccountid: { “error”: “bad_request”, “error_description”: “Billing Account ID is required in resource body”, “cause”: “Request is missing required body content” }

Bad JSON, or data type mismatch. I put in a string for IMEI instead of a number: { “error”: “request_json_unmarshal”, “error_description”: “JSON structure is not correct or data type mismatch, json: cannot unmarshal string into Go struct field V1DeviceIdentifier.imei of type uint64”, “cause”: “Service failed to unmarshal the request due wrong JSON format” }

I tried to delete a device using a bogus IMEI: { “error”: “not_found”, “error_description”: “Resource(Device) is not found with identifiers provided”, “cause”: “Requested service not found” }

Trying to activate my device when it had been deleted: { “error”: “bad_request”, “error_description”: “Resource(Device) is not found with identifiers provided”, “cause”: “Request is missing required body content” }

Setting “kind” to ts.target in PUT /tags: { “error”: “bad_request”, “error_description”: “ValidationKind failed. Types do not match, Target vs Tag”, “cause”: “Request is missing required body content” }

Trying to activate a “ready” CAS device: { “error”: “invalid_event”, “error_description”: “Operation cannot be completed. Invalid event[activate] for device state:ready” }

“high” instead of “High” ? { “error”: “internal_server_error”, “error_description”: “configuration on Device field failed with Error: provider_service_error: provider: ORIGINAL_ERROR_FROM_PROVIDER, Bad Request: null\n, , Failed to forward event to channel due to error”, “cause”: “Requested service failed due to internal error” }

I think this was because I was setting the frequency value to high when it already had that value, and I did not set the location mode. In other words, the request wouldn’t change anything (which isn’t really an error): { “error”: “internal_server_error”, “error_description”: “configuration on Device field failed with Error: provider_service_error: provider: ORIGINAL_ERROR_FROM_PROVIDER, bad_request: Neither Location Mode Nor Frequency Changed in the request, , Failed to forward event to channel due to error”, “cause”: “Requested service failed due to internal error” }

Error Codes

Request Errors

All ThingSpace Location Services API resources use this set of status codes in responses.

HTTP Status Error Code Message Explanation and Suggested Action
400 INVALID_ACCESS The access policy denied the resource operation for this user The UWS account that was used to get a VZ-M2M-Token does not have access to the account specified in the request.
400 CACHE_UNAVAILABLE Location cache has no data for this device Verify the device ID, or set cacheMode=1 or 2 to request current location information.
400 INVALID_PARAMETER Conflicting device list Set allDevice to true OR provide an exclusion list of devices, but not both.
400 INVALID_PARAMETER Consent check failed The requested device is excluded from location services. You can send a POST /consents request to allow the device to be located.
400 INVALID_PARAMETER Device type check failed The specified device is not an IoT device and is not eligible for location services.
400 INVALID_PARAMETER Ownership or MDN validation failed A device in the request does not belong to the specified account. Verify the device identifiers and MDNs, and then retry the request.
400 INVALID_PARAMETER UWS verification failure (Could not find account {account}.) Verify the account number that you are using and then resend the request.
400 INVALID_PARAMETER UWS verification failure (The Session has expired.) The VZ-M2M-Token has expired. Use a POST /session/login request to get a new token.
400 INVALID_PARAMETER Invalid account name The account name in the request was not found. Verify the spelling of the account name and retry the request.
400 INVALID_PARAMETER Unregistered account The account in the request is not registered for Device Location Services.
400 INVALID_PARAMETER Invalid accuracy mode 0 is the only currently supported accuracy mode.
400 INVALID_PARAMETER Invalid cache mode Specify 0, 1, or 2 for the cacheMode.
400 INVALID_PARAMETER Empty device list There were no devices in deviceList. Add devices to deviceList and resend the request.
400 INVALID_PARAMETER Per request max devices exceeded The request includes more than 10,000 devices. Reduce the number of entries in deviceList and resend the request.
400 INVALID_PARAMETER Duplicate devices A device appears twice in deviceList. Remove any duplicate entries and resend the request.
400 INVALID_PARAMETER Input Binding Error JSON format error.
400 INVALID_PARAMETER Invalid device kind. Valid kinds are IMEI, MEID, or ESN. The device kind was not recognized. Use IMEI, MEID, or ESN.
400 INVALID_PARAMETER Invalid device ID format The value of the Identifier element was not in the format required by the Kind element. Set the Identifier element to a value that is in the format required by the Kind element, and then resend the request.
400 INTERNAL_ERROR Failed to get location Failed to retrieve device location. Retry the request.
400 INTERNAL_ERROR Fail to verify device Could not verify that the device is a Verizon device.
400 PARAMETER_ERROR Ownership or MDN validation failed The device does not belong to the account, or the MDN does not belong to the specified device.
400 PARAMETER_ERROR Conflicting device list The request included both allDevice=true and an exclusion list. Specify one or the other and resend the request.
400 PARAMETER_ERROR Max exclusion devices over limit The number of devices specified for exclusion is more than the 2,000 device limit.
400 PARAMETER_ERROR Invalid device ID format The value of the Identifier element was not in the format required by the Kind element. Set the Identifier element to a value that is in the format required by the Kind element, and then resend the request.
400 PARAMETER_ERROR Duplicate exclusion devices A device is included twice in the list of devices to exclude. Remove the duplicate entry and send the request again.

Per-Device Errors

These errors may be returned in the error element for individual devices in a POST /locations or a GET /locationreports response.

Error Type Info Explanation and Suggested Action
TS CACHE UNAVAILABLE Location cache has no data There is no cached location information for this device. You can set cacheMode to 1 or 2 to find the current location of the device.
TS CONSENT CHECK FAILED Specified device ID was excluded from using the service The device is in the exclusion list, and cannot be located with the Device Location API.
TS DEVICE TYPE CHECK FAILED Specified device category is not IoT The specified device may be a phone or tablet. Only IoT devices can be located with the Device Location API.
TS DEVICE DATA UNAVAILABLE Location has no device data The device was not found in the location system
TS DEVICE LOCATION DATA UNAVAILABLE Location has no location data There is no location information available for the device
SYSTEM FAILURE The request can not be handled because of a general problem in the location server.
UNSPECIFIED ERROR An unspecified error used in case none of the other errors apply. This can also be used in case privacy issues prevent certain errors from being presented
UNAUTHORIZED APPLICATION The requesting location-based application is not allowed to access the location server or a wrong password has been supplied.
UNKNOWN SUBSCRIBER Unknown subscriber. The user is unknown, i.e. no such subscription exists.
ABSENT SUBSCRIBER Absent subscriber. The device is currently not reachable; it may be powered off or out of range.
POSITION METHOD FAILURE Position method failure. The location service failed to obtain the user’s position.
TIMEOUT Timer expiry for the requested event trigger
CONGESTION IN LOCATION SERVER The request can not be handled due to congestion in the location server.
UNSUPPORTED VERSION The Location server does not support the indicated protocol version.
TOO MANY POSITION ITEMS Too many position items have been specified in the request.
FORMAT ERROR A protocol element in the request has invalid format. The invalid element is indicated in ADD_INFO.
SYNTAX ERROR The position request has invalid syntax. Details may be indicated in ADD_INFO.
PROTOCOL ELEMENT NOT SUPPORTED A protocol element specified in the position request is not supported by the Location Server, or the position result is not supported by the LCS Client. The element is indicated in ADD_INFO.
SERVICE NOT SUPPORTED The requested service is not supported in the Location Server. The service is indicated in ADD_INFO.
PROTOCOL ELEMENT ATTRIBUTE NOT SUPPORTED A protocol element attribute is not supported in the Location Server. The attribute is indicated in ADD_INFO.
INVALID PROTOCOL ELEMENT VALUE A protocol element in the request has an invalid value. The element is indicated in ADD_INFO.
INVALID PROTOCOL ELEMENT ATTRIBUTE VALUE A protocol element attribute in the request has a wrong value. The element is indicated in ADD_INFO.
PROTOCOL ELEMENT VALUE NOT SUPPORTED A specific value of a protocol element is not supported in the Location Server. The element and value are indicated in ADD_INFO.
PROTOCOL ELEMENT ATTRIBUTE VALUE NOT SUPPORTED A specific value of a protocol element attribute is not supported in the Location Server. The attribute and value are indicated in ADD_INFO.
CANCELLATION OF TRIGGERED LOCATION REQUEST The requested triggered location report is cancelled
QOP NOT ATTAINABLE The requested QoP cannot be provided.
POSITIONING NOT ALLOWED The subscriber does not allow the application to position him/her for whatever reason (privacy settings in location server, LCS privacy class).
CONGESTION IN MOBILE NETWORK The request can not be handled due to congestion in the mobile network.
DISALLOWED BY LOCAL REGULATIONS The location request is disallowed by local regulatory requirements.
MISCONFIGURATION OF LOCATION SERVER The location server is not completely configured to be able to calculate a position.
TARGET MOVED TO NEW MSC/SGSN The triggered Location Request has been aborted due to that target has moved to another MSC/SGSN.
STANDARD LOCATION REPORT SERVICE NOT SUPPORTED The MLS Client does not support the standard location report service.
MLS CLIENT ERROR An error occurred in the MLS Client.
STANDARD LOCATION REPORT SERVICE NOT ACCEPTED The standard location report was not accepted by the MLS Client
SUBSCRIBER ID IN STANDARD LOCATION REPORT SERVICE NOT VALID The subscriber in the Standard Location Report is not valid to the MLS Client
INVALID SERVICE ID IN STANDARD LOCATION REPORT SERVICE The service identity in the Standard Location Report is not valid to the MLS Client

Managed Account Errors

HTTP Status Error Code Message Explanation and Suggested Action
400 INVALID_PARAMETER Acct Not Provisioned With Provided Parameters. Check service & type fields The specified account could not be provisioned or canceled as requested. Verify that the account has been added to the primary account.
400 INVALID_PARAMETER Invalid Service Name The specified service name was not recognized. Verify the spelling and try the request again.
400 INVALID_PARAMETER Primary account not registered The primary account specified in the request does not have any managed accounts.
400 INVALID_PARAMETER Txd Mismatch The transaction ID does not match the last action take on the account.
400 INVALID_PARAMETER UWS account validation failed(The contact does not have access to the account {account}.) The UWS user is not associated with the specified account, and cannot make any changes to that account.