License expiration
A license key has a validity period during which the On-Premise software suite can be used. When the validity period is close to the end date, the services enter a soft block stage. After the end date, theу stop working.
License service states
Soft block is a warning state. The services can still be used, but you receive warnings about upcoming license expiration. The warning time (in days or weeks) can be set using the license.softBlockPeriod parameter during the license service installation.
Hard block is a state of complete license service blocking that restricts the use of the On-Premise software suite. Hard block starts right after the license key expires.
Services behavior upon license expiration
Maps API
Soft block
-
When requesting tiles, the following messages appear in the logs:
# warning when requesting raster tiles
{"error":"request blocked: license warning","http_method":"GET","http_proto":"HTTP/1.1","http_scheme":"http","level":"info","msg":"forbidden","remote_addr":"example_ip","req_id":"b31efee1e07a03e8c236c657a73a8cbf","time":"2025-09-29T15:26:12.031120159Z","uri":"http://tiles-api.example.com/v2/tiles?x=2642\u0026y=1296\u0026z=12\u0026ts=raster","user_agent":"curl/8.5.0"}
# warning when requesting vector tiles
{"error":"request blocked: license warning","http_method":"GET","http_proto":"HTTP/1.1","http_scheme":"http","level":"info","msg":"forbidden","remote_addr":"example_ip","req_id":"8d0c2b795965fd63223776257c2e67c9","time":"2025-09-29T15:26:13.772172578Z","uri":"http://tiles-api.example.com/vt?r=CgoIk6UBEPWuARgP\u0026ts=web\u0026key=<api-key>\u0026appId=empty\u0026lang=en\u0026s=<api-key>","user_agent":"curl/8.5.0"}
# warning when requesting tiles in MVT format
{"error":"request blocked: license warning","http_method":"GET","http_proto":"HTTP/1.1","http_scheme":"http","level":"info","msg":"forbidden","remote_addr":"10.154.113.178","req_id":"a6c143cc9a989c69cf2258001e7b2966","time":"2025-10-09T05:04:10.766329112Z","uri":"http://tiles-api.example.com/mapbox/mapbox/11/1326/1397.mvt","user_agent":"curl/8.5.0"} -
Tile requests return the HTTP code
200, but thex-blocked-reasonfield showsrequest blocked: license warning:Response example for requesting raster tiles
curl -i http://tiles-api.example.com/v2/tiles\?x\=2642\&y\=1296\&z\=12\&ts\=raster
HTTP/2 200
...
x-blocked-reason: request blocked: license warning
...Response example for requesting vector tiles
curl -i 'http://tiles-api.example.com/vt?r=CgoIk6UBEPWuARgP&ts=web&key=<api-key>&appId=empty&lang=en&s=<api-key>'
HTTP/2 200
...
x-blocked-reason: request blocked: license warning
...Response example for requesting tiles in MVT format
curl -i https://tiles-api.example.com/mapbox/mapbox/11/1326/1397.mvt [8:03:58]
HTTP/2 200
...
x-blocked-reason: request blocked: license warning
... -
Raster tiles show a watermark with the message specified in the
warningTextparameter in the Tiles API configuration file.
Hard block
-
When requesting tiles, the logs show certificate verification errors and messages that the request is blocked:
# certificate verification error from the license service
{"context":"license.Client","level":"warning","msg":"Get \"http://license:443/api/v2/authority/check\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: current time 2025-10-03T13:34:57Z is after 2025-10-02T21:00:00Z","time":"2025-10-03T13:34:57.93270351Z"}
# error when requesting raster tiles
{"error":"request blocked: license error","http_method":"GET","http_proto":"HTTP/1.1","http_scheme":"http","level":"info","msg":"forbidden","remote_addr":"example_ip","req_id":"ac1ab31a62b21301acd4c6d2ea2666e2","time":"2025-09-29T14:52:56.073737281Z","uri":"tiles-api.example.com/v2/tiles?x=1326\u0026y=649\u0026z=11\u0026ts=raster\u0026layerType=normal\u0026key=<api-key>\u0026rs=phu6md1q4b\u0026layerType=nc","user_agent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"}
# error when requesting vector tiles
{"error":"request blocked: license error","http_method":"GET","http_proto":"HTTP/1.1","http_scheme":"http","level":"info","msg":"forbidden","remote_addr":"example_ip","req_id":"cb43f97adc5a44a7ae51ab087fa93e40","time":"2025-09-29T14:44:31.320018612Z","uri":"tiles-api.example.com/vt?r=CgoIlaUBEPSuARgP\u0026ts=web\u0026key=<api-key>\u0026appId=empty\u0026lang=en\u0026s=c4666957-5639-4ac6-ac4a-b141e23c953a","user_agent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:143.0) Gecko/20100101 Firefox/143.0"}
# error when requesting tiles in MVT format
{"error":"request blocked: license error","http_method":"GET","http_proto":"HTTP/1.1","http_scheme":"http","level":"info","msg":"forbidden","remote_addr":"example_ip","req_id":"c9cb6e04016c6d19600d6b1043eb0832","time":"2025-10-09T05:45:52.794240524Z","uri":"tiles-api.example.com/mapbox/mapbox/11/1326/1397.mvt","user_agent":"curl/8.5.0"} -
Tile requests return the HTTP code
403and thex-blocked-reasonfield showsrequest blocked: license error:Response example for requesting raster tiles
curl -i http://tiles-api.example.com/v2/tiles\?x\=2642\&y\=1296\&z\=12\&ts\=raster
HTTP/2 403
...
x-blocked-reason: request blocked: license error
...Response example for requesting vector tiles
curl -i 'http://tiles-api.example.com/vt?r=CgoIk6UBEPWuARgP&ts=web&key=<api-key>&appId=empty&lang=en&s=<api-key>'
HTTP/2 403
...
x-blocked-reason: request blocked: license error
...Response example for requesting tiles in MVT format
curl -i https://tiles-api.example.com/mapbox/mapbox/11/1326/1397.mvt
HTTP/2 403
...
x-blocked-reason: request blocked: license error
... -
Raster tiles show a watermark with the message specified in the
errorTextparameter in the Tiles API configuration file. -
Vector tiles show a watermark with the message specified in the
MAPGL_INVALID_KEY_MESSAGEparameter in the MapGL JS API configuration file.
Search API
Soft block
A log message shows that the license expires soon:
{"time":"2025-09-29T15:46:47.704+00:00","message":"License expires in 14 days","level":"WARN"}
Hard block
-
A log message shows that the request is rejected:
{"time":"2025-10-03T13:25:15.772+00:00","message":"License server rejection: untrusted server response","level":"ERROR"} -
API requests return the HTTP code
200, but thex-real-statusheader returns code403, and the response body contains an error message:Response example
curl -i http://catalog-api.example.com/2.0/catalog/rubric/search?key=<api-key>&q=City®ion_id=108
HTTP/2 200
...
x-real-status: 403
x-ipa-http-code: 403
...
{"meta":{"api_version":"3.0.18718","code":403,"error":{"message":"The license to use the service has expired","type":"licenseExpired"},"issue_date":"20250930"}}
Navigation API
Soft block
A log message shows that the license expires soon:
{"time":"2025-09-30T17:56:22.145+00:00","pid":"7","custom.navi_msg":{"thread_id" : "134958354007616", "thread_name" : "mosesd", "line" : "178", "path" : "/data/libraries/traffic-software/Projects/PasportoolClient/src/PasportoolClientV2.cpp", "level" : "Warning", "tags" : "[PasportoolClientV2]", "message" : "402 code is received from Pasportool - license will expire soon"}}
Hard block
-
A log message shows that the request is rejected:
{"time":"2025-10-03T13:30:19.022+00:00","pid":"8","custom.navi_msg":{"thread_id" : "138723404547648", "thread_name" : "mosesd", "line" : "149", "path" : "/data/libraries/traffic-software/Projects/PasportoolClient/src/LicenseNetworkProviderV2.cpp", "level" : "Warning", "tags" : "[LicenseNetworkProviderV2]", "message" : "unexpected response code: 0 text: [] cpr-error message: [SSL certificate problem: certificate has expired] cpr-error code: 39"}}
{"time":"2025-10-03T13:30:19.023+00:00","pid":"8","custom.navi_msg":{"thread_id" : "138723404547648", "thread_name" : "mosesd", "line" : "227", "path" : "/data/libraries/traffic-software/Projects/PasportoolClient/src/PasportoolClientV2.cpp", "level" : "Warning", "tags" : "[PasportoolClientV2]", "message" : "Pasportool service is not reachable"}} -
API requests return an error message:
{"message":"the license is either expired or unavailable","type":"forbidden"}
Actions when license expires
-
Contact your Urbi manager to renew your license.
-
Get a new license using the DGCLI utility. For details, see the Get license section.
-
Make sure that the new license is active. For details, see the Check license status section.