APIs Device to Cloud Lorawan Devices Configure Adapter

On this page you’ll find the DMO configuration that connects your LoRaWAN resources to the Device to Cloud infrastructure.

Before you can provision LoRaWAN devices and gateways, you must configure three resources in DMO:

  1. A LORIOT Account — your credentials for the LORIOT network server.
  2. A LORIOT Application — the LORIOT application that groups your devices.
  3. A LORIOT Network — the LORIOT network that groups your gateways.

These resources are modeled as FlexContainers (ty=28) inside the d2c-protocol-adapter-loriot Application Entity.

Configure LORIOT Account

If you don’t have a LORIOT Account or you don’t want to operate your own network server, please contact D2C support. D2C provides a tenant with a preconfigured account.

The LORIOT Account FlexContainer stores the credentials that D2C uses to communicate with the LORIOT network server.

Create account

  • Request
  • Response
POST {{API_URL}}/d2c-protocol-adapter-loriot
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}

{
  "dtiot:lorAt": {
    "cnd": "com.telekom.iot.orchestrator.loriot.account",
    "rn": "myLoriotAccount",
    "userApi": "https://eu1.loriot.io",
    "token": "<your-loriot-api-token>"
  }
}
HTTP/2 201 Created
date: Thu, 21 May 2026 11:02:41 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:02:41.732Z
x-m2m-rsc: 2001
x-azure-ref: 20260521T110241Z-157794674c5kgnhqhC1FRAxfcn0000001k6g00000000cw2f
x-cache: CONFIG_NOCACHE
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 27c00b4925fb7698e21223353438
vary: Origin
x-kong-upstream-latency: 492
x-kong-proxy-latency: 36
x-kong-request-id: 49139d7307c45e4e0ba54b6416f0874c
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 430
x-http2-stream-id: 3

{
  "dtiot:lorAt": {
    "cnd": "com.telekom.iot.orchestrator.loriot.account",
    "rn": "myLoriotAccount",
    "userApi": "https://eu1.loriot.io",
    "ri": "<resourceID>",
    "ct": "<creationTime>"
  }
}
FieldDescriptionRequired
cndFlexContainer descriptor — always com.telekom.iot.orchestrator.loriot.accountyes
rnResource name — used as a reference in subsequent network and application resourcesyes
userApiRoot URL of your LORIOT server (from Step 1 of the getting-started guide)yes
tokenLORIOT API key (create one in LORIOT UI under Account → API Keys)yes

Get account

  • Request
  • Response
GET {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount
Accept: application/json
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/2 200 OK
date: Thu, 21 May 2026 11:16:34 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:16:34.909Z
x-m2m-rsc: 2000
x-azure-ref: 20260521T111634Z-r1d8c8b4b7fgc6zthC1FRA96a400000003vg000000015vuw
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 27c00b4925fb7698e2122331313130
vary: Origin
x-kong-upstream-latency: 672
x-kong-proxy-latency: 23
x-kong-request-id: 6bc7c31d7b70f33031ac64081b002500
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 430
x-http2-stream-id: 3

{
"dtiot:lorAt": {
"cnd": "com.telekom.iot.orchestrator.loriot.account",
"rn": "myLoriotAccount",
"manBy": "d2c",
"useAi": "https://someurl.com",
"ty": 28,
"cr": "CmyApplication",
"st": 0,
"ri": "6a0ee651cdab4f934adc0b10",
"pi": "69fb6edadbfa0144d3ac6f1f",
"ct": "20260521T110241,531000",
"lt": "20260521T110241,531000",
"token": "someToken668796214hjjljteieieonndlkfnhgsouyttv589745212654521255544789oopjuhgf"
}
}

Delete account

  • Request
  • Response
DELETE {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount
Accept: application/json
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/2 200 OK
date: Thu, 21 May 2026 11:28:51 GMT
content-type: text/plain; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:28:51.628Z
x-m2m-rsc: 2002
x-azure-ref: 20260521T112850Z-157794674c588bv2hC1FRAqubc0000000s2g000000004kf9
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: f9f85430d41fb37d63282332353633
vary: Origin
x-kong-upstream-latency: 954
x-kong-proxy-latency: 5
x-kong-request-id: b8f6a24454e760785ccf5e7ac9b67429
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 0
x-http2-stream-id: 3

<Response body is empty>
Note:
Deleting an account also removes all associated application and network resources from DMO, and cleans up the corresponding resources in LORIOT if they were propagated.

Configure LORIOT Application

The LORIOT Application FlexContainer links a LORIOT application to D2C. Applications group LoRaWAN devices.

You can either link an existing LORIOT application (not propagated) or let D2C create a new one in LORIOT (propagated).

Option A — Link existing application (not propagated)

Use this option when the application already exists in LORIOT. It’s mandatory to provide the Application Hex ID from the LORIOT UI.

  • Request
  • Response
POST {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}

{
  "dtiot:lorAn": {
    "cnd": "com.telekom.iot.orchestrator.loriot.application",
    "rn": "myLoriotApplication",
    "hexId": "ABCD1234",
    "name": "My Application",
    "propagate": false
  }
}
HTTP/2 201 Created
date: Thu, 21 May 2026 11:02:41 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:02:41.732Z
x-m2m-rsc: 2001
x-azure-ref: 20260521T110241Z-157794674c5kgnhqhC1FRAxfcn0000001k6g00000000cw2f
x-cache: CONFIG_NOCACHE
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 27c00b4925fb7698e21223353438
vary: Origin
x-kong-upstream-latency: 492
x-kong-proxy-latency: 36
x-kong-request-id: 49139d7307c45e4e0ba54b6416f0874c
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 430
x-http2-stream-id: 3

{
  "dtiot:lorAn": {
    "cnd": "com.telekom.iot.orchestrator.loriot.application",
    "rn": "myLoriotApplication",
    "hexId": "ABCD1234",
    "name": "My Application",
    "propagate": false,
    "ri": "<resourceID>",
    "ct": "<creationTime>"
  }
}

Option B — Let D2C create the application (propagated)

Use this option when you want D2C to create a new application in LORIOT automatically. Omit the hexId field and set propagate: true. Contact D2C support to enable propagated mode.

  • Request
  • Response
POST {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}

{
  "dtiot:lorAn": {
    "cnd": "com.telekom.iot.orchestrator.loriot.application",
    "rn": "myLoriotApplication",
    "name": "My Application",
    "propagate": true,
    "capacity": 20
  }
}
HTTP/2 201 Created
date: Thu, 21 May 2026 11:02:41 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:02:41.732Z
x-m2m-rsc: 2001
x-azure-ref: 20260521T110241Z-157794674c5kgnhqhC1FRAxfcn0000001k6g00000000cw2f
x-cache: CONFIG_NOCACHE
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 27c00b4925fb7698e21223353438
vary: Origin
x-kong-upstream-latency: 492
x-kong-proxy-latency: 36
x-kong-request-id: 49139d7307c45e4e0ba54b6416f0874c
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 430
x-http2-stream-id: 3

{
  "dtiot:lorAn": {
    "cnd": "com.telekom.iot.orchestrator.loriot.application",
    "rn": "myLoriotApplication",
    "name": "My Application",
    "propagate": true,
    "ri": "<resourceID>",
    "ct": "<creationTime>"
  }
}
FieldDescriptionRequired
cndFlexContainer descriptor — always com.telekom.iot.orchestrator.loriot.applicationyes
rnResource name — used as a label reference during device provisioningyes
nameHuman-readable name for the applicationyes
propagatefalse = link existing LORIOT application; true = D2C creates a new application in LORIOTyes
capacityThe configured application capacity provided in the request is now propagated to Loriot when a new application is created.yes

Get application

  • Request
  • Response
GET {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount/myLoriotApplication
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/2 200 OK
date: Thu, 21 May 2026 11:02:41 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:02:41.732Z
x-m2m-rsc: 2001
x-azure-ref: 20260521T110241Z-157794674c5kgnhqhC1FRAxfcn0000001k6g00000000cw2f
x-cache: CONFIG_NOCACHE
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 27c00b4925fb7698e21223353438
vary: Origin
x-kong-upstream-latency: 492
x-kong-proxy-latency: 36
x-kong-request-id: 49139d7307c45e4e0ba54b6416f0874c
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 430
x-http2-stream-id: 3

{
  "dtiot:lorAn": {
    "cnd": "com.telekom.iot.orchestrator.loriot.application",
    "rn": "myLoriotApplication",
    "nm": "myLoriotApplication",
    "prope": true,
    "capay": 20,
    "lbl": [
      "d2c:1.0"
    ],
    "ty": 28,
    "cr": "CmyApplication",
    "st": 0,
    "ri": "6a26bd59598ac53dedc5f187",
    "pi": "6a0592494af117873ae14553",
    "ct": "20260608T130217,579000",
    "lt": "20260608T130217,579000"
  }
}

Delete application

Important point: if the application was created in propagated mode, and it contains devices, Application could not be deleted. If Application deletion is attempted while devices are still linked to it, deletion will be blocked. Devices should be deleted first, before deleting the application.

  • Request
  • Response
DELETE {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount/myLoriotApplication
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/2 200 OK
date: Mon, 08 Jun 2026 14:34:39 GMT
content-type: text/plain; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-06-08T14:34:39.094Z
x-m2m-rsc: 2002
x-azure-ref: 20260608T143433Z-165bdc8f655v92vfhC1FRAbk7n00000008a000000000egzx
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 4c7d63b483b83bdb04de23363536
vary: Origin
x-kong-upstream-latency: 5202
x-kong-proxy-latency: 28
x-kong-request-id: 059f2267ded92b67c08aed3a16e0855b
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 0
x-http2-stream-id: 3

<Response body is empty>

Configure LORIOT Network

The LORIOT Network FlexContainer links a LORIOT network to D2C. Networks group LoRaWAN gateways.

You can either link an existing LORIOT network (not propagated) or let D2C create a new one (propagated).

Option A — Link existing network (not propagated)

  • Request
  • Response
POST {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}

{
  "dtiot:lorNk": {
    "cnd": "com.telekom.iot.orchestrator.loriot.network",
    "rn": "myLoriotNetwork",
    "hexId": "BE7A0001",
    "name": "My Network",
    "propagate": false
  }
}
HTTP/2 201 Created
date: Thu, 21 May 2026 11:02:41 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:02:41.732Z
x-m2m-rsc: 2001
x-azure-ref: 20260521T110241Z-157794674c5kgnhqhC1FRAxfcn0000001k6g00000000cw2f
x-cache: CONFIG_NOCACHE
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 27c00b4925fb7698e21223353438
vary: Origin
x-kong-upstream-latency: 492
x-kong-proxy-latency: 36
x-kong-request-id: 49139d7307c45e4e0ba54b6416f0874c
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 430
x-http2-stream-id: 3

{
  "dtiot:lorNk": {
    "cnd": "com.telekom.iot.orchestrator.loriot.network",
    "rn": "myLoriotNetwork",
    "hexId": "BE7A0001",
    "name": "My Network",
    "propagate": false,
    "ri": "<resourceID>",
    "ct": "<creationTime>"
  }
}

Option B — Let D2C create the network (propagated)

  • Request
  • Response
POST {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}

{
  "dtiot:lorNk": {
    "cnd": "com.telekom.iot.orchestrator.loriot.network",
    "rn": "myLoriotNetwork",
    "name": "My Network",
    "propagate": true
  }
}
HTTP/2 201 Created
date: Thu, 21 May 2026 11:02:41 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:02:41.732Z
x-m2m-rsc: 2001
x-azure-ref: 20260521T110241Z-157794674c5kgnhqhC1FRAxfcn0000001k6g00000000cw2f
x-cache: CONFIG_NOCACHE
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 27c00b4925fb7698e21223353438
vary: Origin
x-kong-upstream-latency: 492
x-kong-proxy-latency: 36
x-kong-request-id: 49139d7307c45e4e0ba54b6416f0874c
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 430
x-http2-stream-id: 3

{
 "dtiot:lorNk": {
    "cnd": "com.telekom.iot.orchestrator.loriot.network",
    "rn": "myLoriotNetwork",
    "name": "My Network",
    "propagate": true
    "ri": "<resourceID>",
    "ct": "<creationTime>"
  }
}
FieldDescriptionRequired
cndFlexContainer descriptor — always com.telekom.iot.orchestrator.loriot.networkyes
rnResource name — used as a label reference during gateway provisioningyes
nameHuman-readable name for the networkyes
propagatefalse = link existing LORIOT network; true = D2C creates a new network in LORIOTyes

Get network

  • Request
  • Response
GET {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount/myLoriotNetwork
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/2 200 OK
date: Thu, 21 May 2026 11:02:41 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-21T11:02:41.732Z
x-m2m-rsc: 2001
x-azure-ref: 20260521T110241Z-157794674c5kgnhqhC1FRAxfcn0000001k6g00000000cw2f
x-cache: CONFIG_NOCACHE
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 27c00b4925fb7698e21223353438
vary: Origin
x-kong-upstream-latency: 492
x-kong-proxy-latency: 36
x-kong-request-id: 49139d7307c45e4e0ba54b6416f0874c
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 430
x-http2-stream-id: 3

{
  "dtiot:lorAn": {
    "cnd": "com.telekom.iot.orchestrator.loriot.network",
    "rn": "myLoriotNetwork",
    "nm": "myLoriotNetwork",
    "prope": true,
    "lbl": [
      "d2c:1.0"
    ],
    "ty": 28,
    "cr": "CmyApplication",
    "st": 0,
    "ri": "6a26bd59598ac53dedc5f187",
    "pi": "6a0592494af117873ae14553",
    "ct": "20260608T130217,579000",
    "lt": "20260608T130217,579000"
  }
}

Delete network

Important point: if the network was created in propagated mode, and it contains gateways, Network could not be deleted. If Network deletion is attempted while gateways are still linked to it, deletion will be blocked. Gateways should be deleted first, before deleting the Network.

  • Request
  • Response
DELETE {{API_URL}}/d2c-protocol-adapter-loriot/myLoriotAccount/myLoriotNetwork
Accept: application/json
Content-Type: application/json;ty=28
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/2 200 OK
date: Mon, 08 Jun 2026 14:34:39 GMT
content-type: text/plain; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-06-08T14:34:39.094Z
x-m2m-rsc: 2002
x-azure-ref: 20260608T143433Z-165bdc8f655v92vfhC1FRAbk7n00000008a000000000egzx
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: 4c7d63b483b83bdb04de23363536
vary: Origin
x-kong-upstream-latency: 5202
x-kong-proxy-latency: 28
x-kong-request-id: 059f2267ded92b67c08aed3a16e0855b
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 0
x-http2-stream-id: 3

<Response body is empty>

Error handling

If some error occurs during Account/Application/Network processing, the error details are logged in the logs container.

Example of error message in logs container

  • Request
  • Response
GET {{API_URL}}/d2c-protocol-adapter-loriot/logs/la HTTP/2
Accept: application/json
Content-Type: application/json
X-M2M-Origin: CmyApplication
X-M2M-RI: 123
Authorization: Bearer {{ACCESS_TOKEN}}
HTTP/2 200 OK
date: Wed, 06 May 2026 18:39:45 GMT
content-type: application/json; charset=utf-8
request-context: appId=cid-v1:
x-service-responder: device-management-orchestrator
x-m2m-ri: 123
x-m2m-rvi: 4
x-m2m-ot: 2026-05-06T18:39:45.501Z
x-m2m-rsc: 2000
x-azure-ref: 20260506T183945Z-1698948dff4rhdk2hC1FRA1qrw0000000vx00000000062f8
x-cache: CONFIG_NOCACHE
accept-ranges: bytes
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: 0
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
referrer-policy: no-referrer
x-tardis-traceid: e73dacf181ec59495ca52336373930
vary: Origin
x-kong-upstream-latency: 241
x-kong-proxy-latency: 5
x-kong-request-id: 3325a5457c5e4b2794011e43b3cbfc5b
strict-transport-security: max-age=31536000; includeSubDomains
content-length: 629
x-http2-stream-id: 3
{
  "m2m:cin": {
    "con": {
      "identifier": "myLoriotApplication",
      "type": "Loriot application processing failed",
      "service": "d2c-protocol-adapter-loriot",
      "data": "null",
      "status": {
        "code": 400,
        "message": "bad request",
        "detail": "Application could not be deleted. It contains devices. Please, delete devices and then repeat the attempt."
      }
    },
    "cnf": "application/json:0",
    "ty": 4,
    "cs": 641,
    "stg": 2,
    "cr": "CmyApplication",
    "rn": "31af43c7-f111-4e5a-9694-7c66f5745f72",
    "ri": "69b17f068006f89d59522af1",
    "pi": "69b158c08006f89d595224b4",
    "ct": "20260311T144110,172000",
    "lt": "20260311T144110,172000"
  }
}

Fields:

  • identifier — the node identifier.
  • type — describes the error category (e.g. "device processing failed").
  • service — the service that produced the log entry (d2c-device-provisioning).
  • data — empty in case of errors not related to messages
  • status.code / status.message / status.detail — same semantics as in the error-msg container.
  • cnf — content format; "application/json:0" indicates a JSON payload.

Errors summary table

Status CodeStatus MessageDescription
400bad requestNetwork could not be registered. The provided hexId does not match an existing network in Loriot (propagate=false).
400bad requestNetwork could not be deleted. It contains gateways. Please, delete gateways and then repeat the attempt.
400bad requestApplication could not be registered. The provided hexId does not match an existing application in Loriot (propagate=false).
400bad requestApplication could not be deleted. It contains devices. Please, delete devices and then repeat the attempt.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to read account configuration.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to read account token from Key Vault.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to validate account credentials against Loriot.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to store account secrets in Key Vault.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to create network in Loriot.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to delete network from Loriot.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to persist network mapping in Table.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to create application in Loriot.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to delete application from Loriot.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to persist application mapping in Table.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to create application output in Loriot.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to delete application output from Loriot.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to retrieve data about Application. Please, repeat attempt of deletion Application later.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to retrieve data from the table. Error with deletion {resourceName}.
500internal server errorInternal server error: d2c-protocol-adapter-loriot unable to retrieve data about Network. Please, repeat attempt of deletion Network later.
500internal server errorInternal server error: unexpected error occurred in d2c-protocol-adapter-loriot.

Next step

Use the API to onboard your devices to Device to Cloud.