Mendix 6.6.0 Call REST (GET) - Scenario to handle 404 (empty results) is failing

0
Issue: REST API is successfully called using Call REST (GET) and results displayed. However when 404 (empty results in my case) is returned, I am expecting it to return an empty string so that I can validate and then perform import mapping to convert it to actual Response object. But it fails with following exception. Is there any way to check for HTTPResponseCode? Stacktrace: An error has occurred while handling the request. [User 'demo_administrator' with session id '558cfdc4-3659-425f-8bb0-8e214bb1af96' and roles 'Administrator'] com.mendix.modules.microflowengine.MicroflowException: Error calling REST service at MyFirstModule.Airport_GetAirports (CallRest : 'Call REST (GET)') Advanced stacktrace: at com.mendix.integration.actions.microflow.RestCallAction.handleResponse(RestCallAction.scala:70) Caused by: com.mendix.modules.microflowengine.MicroflowException: 404: Not Found at MyFirstModule.Airport_GetAirports (CallRest : 'Call REST (GET)') Advanced stacktrace: at com.mendix.integration.actions.microflow.RestCallAction.checkStatusCode(RestCallAction.scala:78) at com.mendix.integration.actions.microflow.RestCallAction.handleResponse(RestCallAction.scala:64) at com.mendix.integration.actions.microflow.RestCallAction.execute(RestCallAction.scala:42) at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:192) at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:149) at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49) at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:260) at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:248) at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:168) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:174) at com.mendix.core.component.InternalCore.execute(InternalCore.java:383) at com.mendix.webui.actions.client.ExecuteAction.execute(ExecuteAction.java:135) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply$mcV$sp(ClientRequestHandler.scala:317) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:312) at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:312) at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2$$anon$1.execute(ActionDispatching.scala:144) at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32) at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2.apply(ActionDispatching.scala:146) at scala.util.Try$.apply(Try.scala:192) at com.mendix.core.session.Worker$$anonfun$receive$3.applyOrElse(ActionDispatching.scala:140) at akka.actor.Actor$class.aroundReceive(Actor.scala:465) at com.mendix.core.session.Worker.aroundReceive(ActionDispatching.scala:136) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) at akka.actor.ActorCell.invoke(ActorCell.scala:487) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) at akka.dispatch.Mailbox.run(Mailbox.scala:220) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
asked
1 answers
0

You should add custom error handling to your call REST action. You can make this error handling as elaborate as you wish, checking for different HTTP response codes and handling them.

answered