An interface I'm bringing from 7.6.0.9 to 7.6.1.2 broke after the upgrade because Maximo sees all of the messages as failed, even though they're succeeding. It's a simple interface with a publish channel on work order changes with an automation script endpoint. It does a HTTP POST to a url using the example from the 76 Script Features pdf: https://bportaluri.com/wp-content/downloads/Scritping76Featuresfor7609.pdf
The script runs without problem and I can even see the success message come back in the logs and the data in the remote system. But then I immediately get the error:
[ERROR] [MaximoMIF] [CID-CRON-10084] BMXAA1481E - Cannot deliver the message to the endpoint.
null
psdi.util.MXSystemException: BMXAA1481E - Cannot deliver the message to the endpoint.
null
at psdi.iface.jms.QueueToDestManagerProcessor.processMessage(QueueToDestManagerProcessor.java:107)
at psdi.iface.jms.JMSQueueCronTask.getMessage(JMSQueueCronTask.java:466)
at psdi.iface.jms.JMSQueueCronTask.cronAction(JMSQueueCronTask.java:284)
at psdi.server.CronTaskManager.callCronMethod(CronTaskManager.java:2519)
at psdi.server.CronTaskManager.access$1100(CronTaskManager.java:105)
at psdi.server.CronTaskManager$CronThread.run(CronTaskManager.java:3429)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)
at java.util.concurrent.FutureTask.run(FutureTask.java:277)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:191)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.lang.Thread.run(Thread.java:811)
Caused by:
TypeError: unhashable type: 'stringmap'
at org.python.core.PyException.fillInStackTrace(PyException.java:72)
at java.lang.Throwable.<init>(Throwable.java:86)
at org.python.core.PyException.<init>(PyException.java:46)
at org.python.core.PyException.<init>(PyException.java:43)
at org.python.core.PyException.<init>(PyException.java:61)
at org.python.core.Py.TypeError(Py.java:265)
at org.python.core.PyStringMap.stringmap___hash__(PyStringMap.java:702)
at org.python.core.PyStringMap.hashCode(PyStringMap.java:697)
at java.util.Objects.hashCode(Objects.java:109)
at java.util.HashMap$Node.hashCode(HashMap.java:308)
at java.util.AbstractMap.hashCode(AbstractMap.java:541)
at java.util.AbstractMap$SimpleImmutableEntry.hashCode(AbstractMap.java:854)
at java.util.HashMap.hash(HashMap.java:350)
at java.util.HashMap.put(HashMap.java:623)
at java.util.HashSet.add(HashSet.java:231)
at jdk.nashorn.api.scripting.ScriptObjectMirror$13.call(ScriptObjectMirror.java:383)
at jdk.nashorn.api.scripting.ScriptObjectMirror$13.call(ScriptObjectMirror.java:375)
at jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal(ScriptObjectMirror.java:870)
at jdk.nashorn.api.scripting.ScriptObjectMirror.entrySet(ScriptObjectMirror.java:375)
at com.ibm.tivoli.maximo.script.JSR223ScriptDriver.copyFromBindings(JSR223ScriptDriver.java:418)
at com.ibm.tivoli.maximo.script.JSR223ScriptDriver.evalScript(JSR223ScriptDriver.java:362)
at com.ibm.tivoli.maximo.script.AbstractScriptDriver.runScript(AbstractScriptDriver.java:155)
at com.ibm.tivoli.maximo.script.ScriptRouterHandler.invoke(ScriptRouterHandler.java:84)
at psdi.iface.jms.QueueToDestManagerProcessor.processMessage(QueueToDestManagerProcessor.java:97)
... 12 more
After that error the message shows up in message reprocessing, even though the data went across to the remote system. Any ideas on why Maximo thinks it failed? Or why it's throwing "TypeError: unhashable type: 'stringmap'" in the middle of it? It doesn't seem to be happening inside the autoscript since all of the logging lines print, and usually if it errors part way through the logs would just stop when it failed. Plus I can see the the actual return response in the logging too.
#SupportMigration#Support#AssetandFacilitiesManagement#Maximo