Skip to main content

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 the x-blocked-reason field shows request 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 warningText parameter 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 403 and the x-blocked-reason field shows request 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 errorText parameter in the Tiles API configuration file.

  • Vector tiles show a watermark with the message specified in the MAPGL_INVALID_KEY_MESSAGE parameter 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 the x-real-status header returns code 403, 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&region_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"}}

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

  1. Contact your Urbi manager to renew your license.

  2. Get a new license using the DGCLI utility. For details, see the Get license section.

  3. Make sure that the new license is active. For details, see the Check license status section.