Informatievlaanderen / GIPOD

Generiek Informatie Platform Openbaar Domein
MIT License
9 stars 2 forks source link

Creation Groundwork with valid payload failed with 500 response #294

Closed Mubuntu closed 3 years ago

Mubuntu commented 3 years ago

Describe the bug In our integration system (SAP Cloud Platform Integration) we created a flow that generates groundwork objects in the bèta-environment. Occasionally we receive a 500 response from the bèta-environment while the payload/headers are compliant. it often takes a couple of retries before a groundwork is successfully created.

Correlation id and request (failed request)

Groundwork creation (15/07/2021 - 13:45:30)

Request-payload

{
    "ownerId": "a8a621fc-7551-0035-90ce-dd256e34fe03",
    "reference": "DOM-002/21/001-DDD",
    "description": "9300 AALST - TE=TCD_2603 - WERKEN AAN DRINKWATERDISTRIBUTIELEIDINGEN WERK TEST",
    "groundworkZone": "POLYGON ((126775.993600003 180938.145599999,126772.832599998 180933.547899999,126750.131499998 180939.5823,126750.706200004 180944.18,126775.993600003 180938.145599999))",
    "statusId": "3232baa5-a157-4126-a2be-354ad1e480f7",
    "contactOrganisation": [
        {
            "organisationId": "a8a621fc-7551-0035-90ce-dd256e34fe03",
            "roleId": "aad5e947-f7bf-4592-a84a-f591555b0b8b",
            "contactName": "T_PM1 TEST USER",
            "email": "user.name@COMPANY.BE",
            "isPublic": "false"
        }
    ],
    "categoryId": "bb0b471a-7f4d-4eaa-b788-adae1aaf30f8",
    "publicDomainOccupancyTypeId": [
        "13136134-d28f-42ad-85f5-1c690cdf9f8a"
    ],
    "period": {
        "start": "2021-07-15T00:00:00Z",
        "end": "2021-08-16T00:00:00Z"
    },
    "specificationId": [
        "bce64878-6cb7-43e7-896c-e01202a05e4c",
        "24222d39-c71a-40c5-9511-f65f6acfe2fb"
    ],
    "grbImpactId": "25750cda-438f-40b5-bf43-10668bd9b40b"
}

Request-Headers image

Response image

{
    "title": "Internal Server Error",
    "type": "CPI Internal Error",
    "detail": "A web service call is failing in the CPI middleware",
    "status": 500,
    "errors": {
        "title": "HTTP operation failed invoking https://api-gateway.beta.gipod.vlaanderen.be/api/v1/groundworks with statusCode: 500",
        "type": "org.apache.camel.component.ahc.AhcOperationFailedException",
        "detail": {
            "suppressed": [],
            "message": "HTTP operation failed invoking https://api-gateway.beta.gipod.vlaanderen.be/api/v1/groundworks with statusCode: 500",
            "responseBody": "",
            "stackTraceDepth": 46,
            "cause": null,
            "responseHeaders": {
                "Authorization": "Bearer s1tau5Ts5UfKjMOhEYTscA==",
                "CamelCharsetName": "UTF-8",
                "CamelHttpMethod": "POST",
                "CamelHttpResponseCode": "500",
                "CamelHttpResponseText": "Internal Server Error",
                "content-length": "0",
                "Date": "Thu, 15 Jul 2021 11:45:34 GMT",
                "SAP-PASSPORT": "2A54482A0300E600004350495F79313030313237000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004D657373616765526563657074696F6E00000000000000000000000000000000000000000000000000004350495F7931303031323700000000000000000000000000000000000000000062336362653363613234313934613237393334363139353637663338333439610000000016B3CBE3CA24194A27934619567F38349A70108966293A4E8088691346C06C356100000001000000002A54482A",
                "SAP_MessageProcessingLogID": "AGDwH94GXUxCQ4JMSpeAQcNnlA5d",
                "SAP_MplCorrelationId": "AGDwH96WiYu-6SSUo-j1i1z46oRl",
                "SAP_PregeneratedMplId": "AGDwH97e_EZhMfuyyH7HYLDV5bg2",
                "Server": "Kestrel"
            },
            "localizedMessage": "HTTP operation failed invoking https://api-gateway.beta.gipod.vlaanderen.be/api/v1/groundworks with statusCode: 500",
            "stackTrace": [
                {
                    "className": "org.apache.camel.component.ahc.DefaultAhcBinding",
                    "nativeMethod": false,
                    "lineNumber": 331,
                    "fileName": "DefaultAhcBinding.java",
                    "methodName": "populateHttpOperationFailedException"
                },
                {
                    "className": "org.apache.camel.component.ahc.DefaultAhcBinding",
                    "nativeMethod": false,
                    "lineNumber": 298,
                    "fileName": "DefaultAhcBinding.java",
                    "methodName": "onComplete"
                },
                {
                    "className": "org.apache.camel.component.ahc.AhcProducer$AhcAsyncHandler",
                    "nativeMethod": false,
                    "lineNumber": 103,
                    "fileName": "AhcProducer.java",
                    "methodName": "onCompleted"
                },
                {
                    "className": "org.apache.camel.component.ahc.AhcProducer$AhcAsyncHandler",
                    "nativeMethod": false,
                    "lineNumber": 66,
                    "fileName": "AhcProducer.java",
                    "methodName": "onCompleted"
                },
                {
                    "className": "org.asynchttpclient.netty.NettyResponseFuture",
                    "nativeMethod": false,
                    "lineNumber": 222,
                    "fileName": "NettyResponseFuture.java",
                    "methodName": "loadContent"
                },
                {
                    "className": "org.asynchttpclient.netty.NettyResponseFuture",
                    "nativeMethod": false,
                    "lineNumber": 257,
                    "fileName": "NettyResponseFuture.java",
                    "methodName": "done"
                },
                {
                    "className": "org.asynchttpclient.netty.handler.AsyncHttpClientHandler",
                    "nativeMethod": false,
                    "lineNumber": 241,
                    "fileName": "AsyncHttpClientHandler.java",
                    "methodName": "finishUpdate"
                },
                {
                    "className": "org.asynchttpclient.netty.handler.HttpHandler",
                    "nativeMethod": false,
                    "lineNumber": 113,
                    "fileName": "HttpHandler.java",
                    "methodName": "handleChunk"
                },
                {
                    "className": "org.asynchttpclient.netty.handler.HttpHandler",
                    "nativeMethod": false,
                    "lineNumber": 142,
                    "fileName": "HttpHandler.java",
                    "methodName": "handleRead"
                },
                {
                    "className": "org.asynchttpclient.netty.handler.AsyncHttpClientHandler",
                    "nativeMethod": false,
                    "lineNumber": 78,
                    "fileName": "AsyncHttpClientHandler.java",
                    "methodName": "channelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 379,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 365,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 357,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "fireChannelRead"
                },
                {
                    "className": "io.netty.handler.codec.MessageToMessageDecoder",
                    "nativeMethod": false,
                    "lineNumber": 103,
                    "fileName": "MessageToMessageDecoder.java",
                    "methodName": "channelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 379,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 365,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 357,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "fireChannelRead"
                },
                {
                    "className": "io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 436,
                    "fileName": "CombinedChannelDuplexHandler.java",
                    "methodName": "fireChannelRead"
                },
                {
                    "className": "io.netty.handler.codec.ByteToMessageDecoder",
                    "nativeMethod": false,
                    "lineNumber": 324,
                    "fileName": "ByteToMessageDecoder.java",
                    "methodName": "fireChannelRead"
                },
                {
                    "className": "io.netty.handler.codec.ByteToMessageDecoder",
                    "nativeMethod": false,
                    "lineNumber": 296,
                    "fileName": "ByteToMessageDecoder.java",
                    "methodName": "channelRead"
                },
                {
                    "className": "io.netty.channel.CombinedChannelDuplexHandler",
                    "nativeMethod": false,
                    "lineNumber": 251,
                    "fileName": "CombinedChannelDuplexHandler.java",
                    "methodName": "channelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 379,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 365,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 357,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "fireChannelRead"
                },
                {
                    "className": "io.netty.handler.ssl.SslHandler",
                    "nativeMethod": false,
                    "lineNumber": 1504,
                    "fileName": "SslHandler.java",
                    "methodName": "unwrap"
                },
                {
                    "className": "io.netty.handler.ssl.SslHandler",
                    "nativeMethod": false,
                    "lineNumber": 1253,
                    "fileName": "SslHandler.java",
                    "methodName": "decodeJdkCompatible"
                },
                {
                    "className": "io.netty.handler.ssl.SslHandler",
                    "nativeMethod": false,
                    "lineNumber": 1300,
                    "fileName": "SslHandler.java",
                    "methodName": "decode"
                },
                {
                    "className": "io.netty.handler.codec.ByteToMessageDecoder",
                    "nativeMethod": false,
                    "lineNumber": 508,
                    "fileName": "ByteToMessageDecoder.java",
                    "methodName": "decodeRemovalReentryProtection"
                },
                {
                    "className": "io.netty.handler.codec.ByteToMessageDecoder",
                    "nativeMethod": false,
                    "lineNumber": 447,
                    "fileName": "ByteToMessageDecoder.java",
                    "methodName": "callDecode"
                },
                {
                    "className": "io.netty.handler.codec.ByteToMessageDecoder",
                    "nativeMethod": false,
                    "lineNumber": 276,
                    "fileName": "ByteToMessageDecoder.java",
                    "methodName": "channelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 379,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 365,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 357,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "fireChannelRead"
                },
                {
                    "className": "io.netty.channel.DefaultChannelPipeline$HeadContext",
                    "nativeMethod": false,
                    "lineNumber": 1410,
                    "fileName": "DefaultChannelPipeline.java",
                    "methodName": "channelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 379,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.AbstractChannelHandlerContext",
                    "nativeMethod": false,
                    "lineNumber": 365,
                    "fileName": "AbstractChannelHandlerContext.java",
                    "methodName": "invokeChannelRead"
                },
                {
                    "className": "io.netty.channel.DefaultChannelPipeline",
                    "nativeMethod": false,
                    "lineNumber": 919,
                    "fileName": "DefaultChannelPipeline.java",
                    "methodName": "fireChannelRead"
                },
                {
                    "className": "io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe",
                    "nativeMethod": false,
                    "lineNumber": 166,
                    "fileName": "AbstractNioByteChannel.java",
                    "methodName": "read"
                },
                {
                    "className": "io.netty.channel.nio.NioEventLoop",
                    "nativeMethod": false,
                    "lineNumber": 719,
                    "fileName": "NioEventLoop.java",
                    "methodName": "processSelectedKey"
                },
                {
                    "className": "io.netty.channel.nio.NioEventLoop",
                    "nativeMethod": false,
                    "lineNumber": 655,
                    "fileName": "NioEventLoop.java",
                    "methodName": "processSelectedKeysOptimized"
                },
                {
                    "className": "io.netty.channel.nio.NioEventLoop",
                    "nativeMethod": false,
                    "lineNumber": 581,
                    "fileName": "NioEventLoop.java",
                    "methodName": "processSelectedKeys"
                },
                {
                    "className": "io.netty.channel.nio.NioEventLoop",
                    "nativeMethod": false,
                    "lineNumber": 493,
                    "fileName": "NioEventLoop.java",
                    "methodName": "run"
                },
                {
                    "className": "io.netty.util.concurrent.SingleThreadEventExecutor$4",
                    "nativeMethod": false,
                    "lineNumber": 989,
                    "fileName": "SingleThreadEventExecutor.java",
                    "methodName": "run"
                },
                {
                    "className": "io.netty.util.internal.ThreadExecutorMap$2",
                    "nativeMethod": false,
                    "lineNumber": 74,
                    "fileName": "ThreadExecutorMap.java",
                    "methodName": "run"
                },
                {
                    "className": "io.netty.util.concurrent.FastThreadLocalRunnable",
                    "nativeMethod": false,
                    "lineNumber": 30,
                    "fileName": "FastThreadLocalRunnable.java",
                    "methodName": "run"
                },
                {
                    "className": "java.lang.Thread",
                    "nativeMethod": false,
                    "lineNumber": 836,
                    "fileName": "Thread.java",
                    "methodName": "run"
                }
            ],
            "statusText": "Internal Server Error",
            "redirectError": false,
            "redirectLocation": null,
            "url": "https://api-gateway.beta.gipod.vlaanderen.be/api/v1/groundworks",
            "statusCode": 500
        }
    }
}

Response-Headers image

Correlation id and request (successful request)

Groundwork creation (15/07/2021 - 13:45:35)

Request-Payload

{
    "ownerId": "a8a621fc-7551-0035-90ce-dd256e34fe03",
    "reference": "DOM-002/21/001-DDD",
    "description": "9300 AALST - TE=TCD_2603 - WERKEN AAN DRINKWATERDISTRIBUTIELEIDINGEN WERK TEST",
    "groundworkZone": "POLYGON ((126775.993600003 180938.145599999,126772.832599998 180933.547899999,126750.131499998 180939.5823,126750.706200004 180944.18,126775.993600003 180938.145599999))",
    "statusId": "3232baa5-a157-4126-a2be-354ad1e480f7",
    "contactOrganisation": [
        {
            "organisationId": "a8a621fc-7551-0035-90ce-dd256e34fe03",
            "roleId": "aad5e947-f7bf-4592-a84a-f591555b0b8b",
            "contactName": "T_PM1 TEST USER",
            "email": "user.name@COMPANY.BE",
            "isPublic": "false"
        }
    ],
    "categoryId": "bb0b471a-7f4d-4eaa-b788-adae1aaf30f8",
    "publicDomainOccupancyTypeId": [
        "13136134-d28f-42ad-85f5-1c690cdf9f8a"
    ],
    "period": {
        "start": "2021-07-15T00:00:00Z",
        "end": "2021-08-16T00:00:00Z"
    },
    "specificationId": [
        "bce64878-6cb7-43e7-896c-e01202a05e4c",
        "24222d39-c71a-40c5-9511-f65f6acfe2fb"
    ],
    "grbImpactId": "25750cda-438f-40b5-bf43-10668bd9b40b"
}

Request-Headers image

Response-Body

{
    "status": 201,
    "message": "Groundwork was registered.",
    "location": "/api/v1/groundworks/10492565"
}

Response-Headers image

Expected behavior A 201 response (groundwork registered) on the first try, not after serveral retries.

AIV-Bert commented 3 years ago

Dear @Mubuntu,

Can you provide the failed, raw response you receive from our api? Your own internal SAP exceptions don't contain relevant information to debug the issue on our side.

Kind regards,

Bert

Mubuntu commented 3 years ago

Hi @AIV-Bert, this ticket can be closed. it was an issue related to the SAP CPI HTTP-adapter that has been resolved. thanks for the follow-up. 😁

AIV-Bert commented 3 years ago

Thank you for closing the issue!