WDK 1.1.0 - Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value

Description:
When sending a text that contains a break line character in a text area Symphony Element and submitting the form. The WDK will error with "Illegal unquoted character" and fail to submit the form. The form does not reset, but rather hangs in a submitted state.
If this issue occurs on a complex workflow, then the workflow will have to be re-started from the beginning.
Steps to Reproduce:

Start WDK 1.1.0 or 1.2.0 and & use either of these SWADL workflows:

https://github.com/SymphonyPlatformSolutions/symphony-training-research-workflow/blob/chapter-5/workflows/research.swadl.yaml
https://github.com/SymphonyPlatformSolutions/symphony-training-research-workflow/blob/chapter-7/workflows/research.swadl.yaml

The following text that is sent in the textarea works fine:

Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.

However, sending this text with a newline /breakline it breaks and returns an error:

Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.
WE should consider this stock for the future.

Expected Result:
When adding new sentences in the textarea with a break line character WDK should not fail and parse it correctly.
Actual Result:
When adding new sentences in the textarea with a break line character WDK fails to parse it and stops the workflow from progressing further.
Environment:
WDK 1.1.0 & WDK 1.2.0.
Additional Context:
Snippet of error that is returned:
2022-09-28 16:21:07.859 ERROR 9184 --- [aTaskExecutor-2] org.camunda.bpm.engine.context           : ENGINE-16004 Exception while closing command context: couldn't execute activity <serviceTask id="approvalForm" ...>: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source:
(String)"{"id":"approvalForm","on":{"one-of":null,"form-replied":{"form-id":"authoringForm","exclusive":false},"activity-expired":null,"activity-completed":null,"activity-failed":null,"message-received":null,"message-suppressed":null,"post-shared":null,"im-created":null,"room-created":null,"room-updated":null,"room-deactivated":null,"room-reactivated":null,"room-member-promoted-to-owner":null,"room-member-demoted-from-owner":null,"user-joined-room":null,"user-left-room":null,"user-requested-join-room":nu"[truncated 579 chars]; line: 1, column: 924] (through reference chain: com.symphony.bdk.workflow.swadl.v1.activity.message.SendMessage["content"])

org.camunda.bpm.engine.impl.pvm.PvmException: couldn't execute activity <serviceTask id="approvalForm" ...>: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source: (String)"{"id":"approvalForm","on":{"one-of":null,"form-replied":{"form-id":"authoringForm","exclusive":false},"activity-expired":null,"activity-completed":null,"activity-failed":null,"message-received":null,"message-suppressed":null,"post-shared":null,"im-created":null,"room-created":null,"room-updated":null,"room-deactivated":null,"room-reactivated":null,"room-member-promoted-to-owner":null,"room-member-demoted-from-owner":null,"user-joined-room":null,"user-left-room":null,"user-requested-join-room":nu"[truncated 579 chars]; line: 1, column: 924] (through reference chain: com.symphony.bdk.workflow.swadl.v1.activity.message.SendMessage["content"])

Full error available here:
"C:\Program Files\Java\jdk-11.0.9+11\bin\java.exe" -Dfile.encoding=windows-1252 -jar C:\Users\dilan.vaghela\Documents\Learning\Symphony-internal-bots\WDK\workflow-bot-app.jar
2022-09-28 16:05:52.457  INFO 18900 --- [           main] c.s.bdk.workflow.WorkflowBotApplication  : Starting WorkflowBotApplication using Java 11.0.9 on dvaghela-xps with PID 18900 (C:\Users\dilan.vaghela\Documents\Learning\Symphony-internal-bots\WDK\workflow-bot-app.jar started by dilan.vaghela in C:\Users\dilan.vaghela\Documents\Learning\Symphony-internal-bots\WDK)
2022-09-28 16:05:52.460 DEBUG 18900 --- [           main] c.s.bdk.workflow.WorkflowBotApplication  : Running with Spring Boot v2.6.6, Spring v5.3.18
2022-09-28 16:05:52.461  INFO 18900 --- [           main] c.s.bdk.workflow.WorkflowBotApplication  : No active profile set, falling back to 1 default profile: "default"
2022-09-28 16:05:55.692  INFO 18900 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JDBC repositories in DEFAULT mode.
2022-09-28 16:05:55.730  INFO 18900 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 30 ms. Found 0 JDBC repository interfaces.
2022-09-28 16:05:57.699  INFO 18900 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2022-09-28 16:05:57.719  INFO 18900 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-09-28 16:05:57.719  INFO 18900 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.60]
2022-09-28 16:05:57.864  INFO 18900 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/wdk]    : Initializing Spring embedded WebApplicationContext
2022-09-28 16:05:57.864  INFO 18900 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4679 ms
2022-09-28 16:06:00.516  INFO 18900 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2022-09-28 16:06:00.978  INFO 18900 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2022-09-28 16:06:07.129 DEBUG 18900 --- [           main] c.s.bdk.core.auth.AuthenticatorFactory   : Loading RSA privateKey from path : C:\Users\dilan.vaghela\Documents\Certs\develop2\privatekey.pem
2022-09-28 16:06:07.523 DEBUG 18900 --- [           main] c.s.b.c.a.impl.BotAuthenticatorRsaImpl   : Start retrieving authentication tokens using RSA authentication...
2022-09-28 16:06:10.680 DEBUG 18900 --- [           main] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/login/pubkey/authenticate, time=1017
2022-09-28 16:06:10.740 DEBUG 18900 --- [           main] c.s.b.c.a.impl.BotAuthenticatorRsaImpl   : sessionToken successfully retrieved.
2022-09-28 16:06:10.749 DEBUG 18900 --- [           main] c.s.b.c.a.impl.BotAuthenticatorRsaImpl   : Start retrieving keyManagerToken using RSA authentication...
2022-09-28 16:06:11.705 DEBUG 18900 --- [           main] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/relay/pubkey/authenticate, time=662
2022-09-28 16:06:11.706 DEBUG 18900 --- [           main] c.s.b.c.a.impl.BotAuthenticatorRsaImpl   : keyManagerToken successfully retrieved.
2022-09-28 16:06:11.943  INFO 18900 --- [           main] c.s.b.w.configuration.VersionLogger      : Running with WDK version: 1.1.0
2022-09-28 16:06:13.516 DEBUG 18900 --- [           main] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/pod/v2/sessioninfo, time=594
2022-09-28 16:06:13.564 DEBUG 18900 --- [           main] c.s.bdk.spring.config.BdkActivityConfig  : Retrieving bot session info
2022-09-28 16:06:13.777 DEBUG 18900 --- [           main] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/pod/v2/sessioninfo, time=203
2022-09-28 16:06:13.777 DEBUG 18900 --- [           main] c.s.bdk.spring.config.BdkActivityConfig  : 0 activities found from context
2022-09-28 16:06:13.782 DEBUG 18900 --- [           main] c.s.b.spring.config.BdkExtensionConfig   : 1 extension(s) found from application context. The following extension(s) will be registered:
2022-09-28 16:06:13.782 DEBUG 18900 --- [           main] c.s.b.spring.config.BdkExtensionConfig   : - com.symphony.bdk.ext.group.SymphonyGroupBdkExtension
2022-09-28 16:06:13.782 DEBUG 18900 --- [           main] c.s.bdk.core.extension.ExtensionService  : Extension <class com.symphony.bdk.ext.group.SymphonyGroupBdkExtension> uses authentication
2022-09-28 16:06:13.782 DEBUG 18900 --- [           main] c.s.bdk.core.extension.ExtensionService  : Extension <class com.symphony.bdk.ext.group.SymphonyGroupBdkExtension> uses the ApiClientFactory
2022-09-28 16:06:13.782 DEBUG 18900 --- [           main] c.s.bdk.core.extension.ExtensionService  : Extension <class com.symphony.bdk.ext.group.SymphonyGroupBdkExtension> uses the RetryBuilder
2022-09-28 16:06:14.424 DEBUG 18900 --- [           main] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/login/idm/tokens?scope=profile-manager, time=601
2022-09-28 16:06:14.434  INFO 18900 --- [           main] c.s.b.spring.config.BdkExtensionConfig   : Extension service bean <com.symphony.bdk.ext.group.SymphonyGroupService> successfully registered in application context
2022-09-28 16:06:14.553 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds?tag=dil.bot1, time=952
2022-09-28 16:06:14.556  INFO 18900 --- [_DatafeedThread] c.s.b.c.s.datafeed.impl.DatafeedLoopV2   : Start reading events from datafeed d3f4f74203475edc12cccb3d23ffc5bd_f_2c028
2022-09-28 16:06:15.197 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=640
2022-09-28 16:06:15.261 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : Before dispatching 'MESSAGESENT' event to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:06:15.265 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : 'MESSAGESENT' event successfully dispatched to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:06:15.859  INFO 18900 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path '/wdk'
2022-09-28 16:06:15.875  INFO 18900 --- [           main] c.s.bdk.workflow.WorkflowBotApplication  : Started WorkflowBotApplication in 24.915 seconds (JVM running for 25.744)
2022-09-28 16:06:15.890  INFO 18900 --- [   scheduling-1] c.s.b.w.c.WorkflowFolderWatcher          : Watching workflows from .\workflows
2022-09-28 16:06:16.351  INFO 18900 --- [cTaskExecutor-4] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (http)
2022-09-28 16:06:16.352  INFO 18900 --- [cTaskExecutor-4] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-09-28 16:06:16.353  INFO 18900 --- [cTaskExecutor-4] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.60]
2022-09-28 16:06:16.384  INFO 18900 --- [cTaskExecutor-4] o.a.c.c.C.[Tomcat-1].[localhost].[/]     : Initializing Spring embedded WebApplicationContext
2022-09-28 16:06:16.384  INFO 18900 --- [cTaskExecutor-4] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 514 ms
2022-09-28 16:06:16.790  INFO 18900 --- [cTaskExecutor-4] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 14 endpoint(s) beneath base path '/actuator'
2022-09-28 16:06:16.965  INFO 18900 --- [cTaskExecutor-4] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path ''
2022-09-28 16:06:17.440  INFO 18900 --- [   scheduling-1] org.reflections.Reflections              : Reflections took 258 ms to scan 6 urls, producing 112 keys and 846 values
2022-09-28 16:06:17.661  INFO 18900 --- [   scheduling-1] c.s.bdk.workflow.swadl.ActivityRegistry  : Found these activities: [AcceptConnection, AddGroupMember, AddRoomMember, AddUserRole, Connection, CreateConnection, CreateGroup, CreateRoom, CreateSystemUser, CreateUser, DemoteRoomOwner, ExecuteRequest, ExecuteScript, GetAttachment, GetConnection, GetConnections, GetGroup, GetGroups, GetMessage, GetMessages, GetRoom, GetRoomMembers, GetRooms, GetStream, GetStreamMembers, GetStreams, GetUser, GetUserStreams, GetUsers, MyActivity, PinMessage, PromoteRoomOwner, RejectConnection, RemoveConnection, RemoveRoomMember, RemoveUserRole, SendMessage, UnpinMessage, UpdateGroup, UpdateMessage, UpdateRoom, UpdateSystemUser, UpdateUser]
2022-09-28 16:06:20.782  WARN 18900 --- [   scheduling-1] org.camunda.bpm.engine.util              : ENGINE-09004 Warnings during parsing:
* Exclusive Gateway 'loop_setApproval' has outgoing sequence flow 'sequenceFlow_531656d8-1a5f-4eff-bfc3-124990b23e8b' without condition which is not the default flow. We assume it to be the default flow, but it is bad modeling practice, better set the default flow in your gateway. | resource research-workflow.bpmn
2022-09-28 16:06:20.820  INFO 18900 --- [   scheduling-1] c.s.b.w.engine.camunda.CamundaEngine     : Deployed workflow 1c204679-3f3f-11ed-9156-9cb6d09423cf research-workflow
2022-09-28 16:06:20.820  INFO 18900 --- [   scheduling-1] audit-trail                              : event=deploy_workflow, deployment=1c204679-3f3f-11ed-9156-9cb6d09423cf, deployment_name=research-workflow, process_key=research-workflow
2022-09-28 16:06:21.030  INFO 18900 --- [   scheduling-1] c.s.b.w.engine.camunda.CamundaEngine     : Deployed workflow 1c56bfd2-3f3f-11ed-9156-9cb6d09423cf research-webhook-workflow
2022-09-28 16:06:21.031  INFO 18900 --- [   scheduling-1] audit-trail                              : event=deploy_workflow, deployment=1c56bfd2-3f3f-11ed-9156-9cb6d09423cf, deployment_name=research-webhook-workflow, process_key=research-webhook-workflow
2022-09-28 16:06:21.199  INFO 18900 --- [   scheduling-1] c.s.b.w.engine.camunda.CamundaEngine     : Deployed workflow 1c725e2a-3f3f-11ed-9156-9cb6d09423cf research-main-workflow
2022-09-28 16:06:21.200  INFO 18900 --- [   scheduling-1] audit-trail                              : event=deploy_workflow, deployment=1c725e2a-3f3f-11ed-9156-9cb6d09423cf, deployment_name=research-main-workflow, process_key=research-main-workflow
2022-09-28 16:06:36.093 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=20827
2022-09-28 16:06:41.069 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=4975
2022-09-28 16:06:41.070 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : Before dispatching 'MESSAGESENT' event to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:06:41.072 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : 'MESSAGESENT' event successfully dispatched to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:06:41.073 DEBUG 18900 --- [TaskExecutor-42] c.s.b.w.e.c.WorkflowEventToCamundaEvent  : Dispatching event V4MessageSent from user<PHONE_NUMBER>44893
2022-09-28 16:06:41.107  INFO 18900 --- [TaskExecutor-42] audit-trail                              : event=start_process, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow
2022-09-28 16:06:41.115  INFO 18900 --- [TaskExecutor-42] audit-trail                              : initiator=349026222344893, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow
2022-09-28 16:06:41.146  INFO 18900 --- [TaskExecutor-42] audit-trail                              : job=28632949-3f3f-11ed-9156-9cb6d09423cf, job_type=async-continuation, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=startEvent_e1b2fca4-6714-4fd9-a622-f89a452905cf
2022-09-28 16:06:41.174 DEBUG 18900 --- [aTaskExecutor-1] c.s.b.w.e.c.variable.VariablesListener   : Setting variables for execution 285d5ce1-3f3f-11ed-9156-9cb6d09423cf
2022-09-28 16:06:41.174 DEBUG 18900 --- [aTaskExecutor-1] c.s.b.w.e.c.variable.VariablesListener   : Loading workflow variable to execution context [[approvalRoomId, clientRoomIds]]
2022-09-28 16:06:41.191  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=startEvent_e1b2fca4-6714-4fd9-a622-f89a452905cf, activity_name=message-received_/research
2022-09-28 16:06:41.197  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=startEvent_e1b2fca4-6714-4fd9-a622-f89a452905cf, activity_name=message-received_/research, duration=6
2022-09-28 16:06:41.204  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=setAuthor, activity_name=setAuthor
2022-09-28 16:06:41.205  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=setAuthor, activity_name=setAuthor, activity_type=ExecuteScript
2022-09-28 16:06:41.946  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=setAuthor, activity_name=setAuthor, duration=742
2022-09-28 16:06:41.957  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=authoringForm, activity_name=authoringForm
2022-09-28 16:06:41.972  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=authoringForm, activity_name=authoringForm, activity_type=SendMessage
2022-09-28 16:06:41.974 DEBUG 18900 --- [aTaskExecutor-1] c.s.b.w.e.e.message.SendMessageExecutor  : Sending message to rooms [4fAnyOo7rP9u-3uZ3fBjkX___pRCFHzhdA]
2022-09-28 16:06:43.137 DEBUG 18900 --- [aTaskExecutor-1] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v4/stream/4fAnyOo7rP9u-3uZ3fBjkX___pRCFHzhdA/message/create, time=1128
2022-09-28 16:06:43.147  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=authoringForm, activity_name=authoringForm, duration=1190
2022-09-28 16:06:43.161  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : job=29971587-3f3f-11ed-9156-9cb6d09423cf, job_type=timer-intermediate-transition, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_7c7b5b7d-8e1e-4c6b-9fea-98671546abc8
2022-09-28 16:06:43.162  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=eventBasedGateway_eb78f629-7d6e-4530-8378-60a92560d08d, activity_name=null
2022-09-28 16:06:43.167  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : job=28632949-3f3f-11ed-9156-9cb6d09423cf, job_type=async-continuation, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=startEvent_e1b2fca4-6714-4fd9-a622-f89a452905cf
2022-09-28 16:06:43.241 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=2168
2022-09-28 16:06:45.311 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=2067
2022-09-28 16:07:05.677 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=20365
2022-09-28 16:07:26.118 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=20439
2022-09-28 16:07:40.316 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=14196
2022-09-28 16:07:40.318 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : Before dispatching 'SYMPHONYELEMENTSACTION' event to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:07:40.319 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : 'SYMPHONYELEMENTSACTION' event successfully dispatched to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:07:40.319 DEBUG 18900 --- [askExecutor-129] c.s.b.w.e.c.WorkflowEventToCamundaEvent  : Dispatching event V4SymphonyElementsAction from user<PHONE_NUMBER>44893
2022-09-28 16:07:40.390  INFO 18900 --- [askExecutor-129] audit-trail                              : initiator=349026222344893, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow
2022-09-28 16:07:40.398  INFO 18900 --- [askExecutor-129] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=eventBasedGateway_eb78f629-7d6e-4530-8378-60a92560d08d, activity_name=null
2022-09-28 16:07:40.403  INFO 18900 --- [askExecutor-129] audit-trail                              : job=29971587-3f3f-11ed-9156-9cb6d09423cf, job_type=timer-intermediate-transition, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_7c7b5b7d-8e1e-4c6b-9fea-98671546abc8
2022-09-28 16:07:40.405  INFO 18900 --- [askExecutor-129] audit-trail                              : job=4bb5d259-3f3f-11ed-9156-9cb6d09423cf, job_type=async-continuation, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_c7867148-491a-4be2-8461-8d970874d2e9
2022-09-28 16:07:40.432  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_c7867148-491a-4be2-8461-8d970874d2e9, activity_name=formReply_authoringForm
2022-09-28 16:07:40.452  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_c7867148-491a-4be2-8461-8d970874d2e9, activity_name=formReply_authoringForm, duration=20
2022-09-28 16:07:40.471  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=getPrice, activity_name=getPrice
2022-09-28 16:07:40.476  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=getPrice, activity_name=getPrice, activity_type=ExecuteRequest
2022-09-28 16:07:40.495  INFO 18900 --- [aTaskExecutor-2] c.s.b.w.e.e.r.ExecuteRequestExecutor     : Executing request GET https://min-api.cryptocompare.com/data/price?fsym=AAPL&tsyms=usd
2022-09-28 16:07:41.189  INFO 18900 --- [aTaskExecutor-2] c.s.b.w.e.e.r.ExecuteRequestExecutor     : Received response 200
2022-09-28 16:07:41.197  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=getPrice, activity_name=getPrice, duration=726
2022-09-28 16:07:41.200  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=prepareApprovalForm, activity_name=prepareApprovalForm
2022-09-28 16:07:41.201  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=prepareApprovalForm, activity_name=prepareApprovalForm, activity_type=ExecuteScript
2022-09-28 16:07:41.351  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=prepareApprovalForm, activity_name=prepareApprovalForm, duration=151
2022-09-28 16:07:41.372  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=approvalForm, activity_name=approvalForm
2022-09-28 16:07:41.375  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=approvalForm, activity_name=approvalForm, activity_type=SendMessage
2022-09-28 16:07:41.375 DEBUG 18900 --- [aTaskExecutor-2] c.s.b.w.e.e.message.SendMessageExecutor  : Sending message to rooms [dZ43WXzFtYPepTjtpytUv3///pKh2n6udA==]
2022-09-28 16:07:42.902 DEBUG 18900 --- [aTaskExecutor-2] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v4/stream/dZ43WXzFtYPepTjtpytUv3___pKh2n6udA/message/create, time=1526
2022-09-28 16:07:42.906  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=approvalForm, activity_name=approvalForm, duration=1534
2022-09-28 16:07:42.911  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : job=4d343525-3f3f-11ed-9156-9cb6d09423cf, job_type=timer-intermediate-transition, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_e717d54d-9b0b-4d9f-9951-21b051f2c442
2022-09-28 16:07:42.911  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=eventBasedGateway_2de644b2-f2a3-490f-8e8f-c93cc42df1fd, activity_name=null
2022-09-28 16:07:42.914  INFO 18900 --- [aTaskExecutor-2] audit-trail                              : job=4bb5d259-3f3f-11ed-9156-9cb6d09423cf, job_type=async-continuation, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_c7867148-491a-4be2-8461-8d970874d2e9
2022-09-28 16:07:42.935 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=2615
2022-09-28 16:07:43.736 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=800
2022-09-28 16:07:50.355 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=6618
2022-09-28 16:07:50.357 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : Before dispatching 'SYMPHONYELEMENTSACTION' event to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:07:50.358 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : 'SYMPHONYELEMENTSACTION' event successfully dispatched to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:07:50.358 DEBUG 18900 --- [askExecutor-248] c.s.b.w.e.c.WorkflowEventToCamundaEvent  : Dispatching event V4SymphonyElementsAction from user<PHONE_NUMBER>44893
2022-09-28 16:07:50.374  INFO 18900 --- [askExecutor-248] audit-trail                              : initiator=349026222344893, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow
2022-09-28 16:07:50.381  INFO 18900 --- [askExecutor-248] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=eventBasedGateway_2de644b2-f2a3-490f-8e8f-c93cc42df1fd, activity_name=null
2022-09-28 16:07:50.385  INFO 18900 --- [askExecutor-248] audit-trail                              : job=4d343525-3f3f-11ed-9156-9cb6d09423cf, job_type=timer-intermediate-transition, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_e717d54d-9b0b-4d9f-9951-21b051f2c442
2022-09-28 16:07:50.388  INFO 18900 --- [askExecutor-248] audit-trail                              : job=51a91b8b-3f3f-11ed-9156-9cb6d09423cf, job_type=async-continuation, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_af559199-0b0a-4323-8bae-9f7df1e50100
2022-09-28 16:07:50.410  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_af559199-0b0a-4323-8bae-9f7df1e50100, activity_name=formReply_approvalForm
2022-09-28 16:07:50.420  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_af559199-0b0a-4323-8bae-9f7df1e50100, activity_name=formReply_approvalForm, duration=10
2022-09-28 16:07:50.424  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=setApproval, activity_name=setApproval
2022-09-28 16:07:50.425  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=setApproval, activity_name=setApproval, activity_type=ExecuteScript
2022-09-28 16:07:50.465  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=setApproval, activity_name=setApproval, duration=41
2022-09-28 16:07:50.468  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=loop_setApproval, activity_name=null
2022-09-28 16:07:50.471  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=loop_setApproval, activity_name=null, duration=3
2022-09-28 16:07:50.476  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=authoringForm, activity_name=authoringForm
2022-09-28 16:07:50.482  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=authoringForm, activity_name=authoringForm, activity_type=SendMessage
2022-09-28 16:07:50.482 DEBUG 18900 --- [aTaskExecutor-3] c.s.b.w.e.e.message.SendMessageExecutor  : Sending message to rooms [4fAnyOo7rP9u-3uZ3fBjkX___pRCFHzhdA]
2022-09-28 16:07:51.605 DEBUG 18900 --- [aTaskExecutor-3] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v4/stream/4fAnyOo7rP9u-3uZ3fBjkX___pRCFHzhdA/message/create, time=1122
2022-09-28 16:07:51.614  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=authoringForm, activity_name=authoringForm, duration=1138
2022-09-28 16:07:51.619  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : job=5264f197-3f3f-11ed-9156-9cb6d09423cf, job_type=timer-intermediate-transition, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_7c7b5b7d-8e1e-4c6b-9fea-98671546abc8
2022-09-28 16:07:51.620  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=eventBasedGateway_eb78f629-7d6e-4530-8378-60a92560d08d, activity_name=null
2022-09-28 16:07:51.623  INFO 18900 --- [aTaskExecutor-3] audit-trail                              : job=51a91b8b-3f3f-11ed-9156-9cb6d09423cf, job_type=async-continuation, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_af559199-0b0a-4323-8bae-9f7df1e50100
2022-09-28 16:07:51.686 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=1327
2022-09-28 16:07:52.619 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=931
2022-09-28 16:08:12.971 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=20351
2022-09-28 16:08:26.918 DEBUG 18900 --- [_DatafeedThread] com.symphony.bdk.requests.outgoing       : status=200, url=https://develop2.symphony.com:443/agent/v5/datafeeds/d3f4f74203475edc12cccb3d23ffc5bd_f_2c028/read, time=13946
2022-09-28 16:08:26.920 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : Before dispatching 'SYMPHONYELEMENTSACTION' event to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:08:26.920 DEBUG 18900 --- [_DatafeedThread] c.s.b.c.s.d.impl.AbstractDatafeedLoop    : 'SYMPHONYELEMENTSACTION' event successfully dispatched to listener com.symphony.bdk.spring.events.RealTimeEventsDispatcher@e3409b
2022-09-28 16:08:26.921 DEBUG 18900 --- [askExecutor-359] c.s.b.w.e.c.WorkflowEventToCamundaEvent  : Dispatching event V4SymphonyElementsAction from user<PHONE_NUMBER>44893
2022-09-28 16:08:26.943  INFO 18900 --- [askExecutor-359] audit-trail                              : initiator=349026222344893, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow
2022-09-28 16:08:26.948  INFO 18900 --- [askExecutor-359] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=eventBasedGateway_eb78f629-7d6e-4530-8378-60a92560d08d, activity_name=null
2022-09-28 16:08:26.952  INFO 18900 --- [askExecutor-359] audit-trail                              : job=5264f197-3f3f-11ed-9156-9cb6d09423cf, job_type=timer-intermediate-transition, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_7c7b5b7d-8e1e-4c6b-9fea-98671546abc8
2022-09-28 16:08:26.954  INFO 18900 --- [askExecutor-359] audit-trail                              : job=6774a31d-3f3f-11ed-9156-9cb6d09423cf, job_type=async-continuation, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_c7867148-491a-4be2-8461-8d970874d2e9
2022-09-28 16:08:26.971  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_c7867148-491a-4be2-8461-8d970874d2e9, activity_name=formReply_authoringForm
2022-09-28 16:08:26.983  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_c7867148-491a-4be2-8461-8d970874d2e9, activity_name=formReply_authoringForm, duration=12
2022-09-28 16:08:26.987  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=getPrice, activity_name=getPrice
2022-09-28 16:08:26.989  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=getPrice, activity_name=getPrice, activity_type=ExecuteRequest
2022-09-28 16:08:26.990  INFO 18900 --- [aTaskExecutor-1] c.s.b.w.e.e.r.ExecuteRequestExecutor     : Executing request GET https://min-api.cryptocompare.com/data/price?fsym=AAPL&tsyms=usd
2022-09-28 16:08:27.054  INFO 18900 --- [aTaskExecutor-1] c.s.b.w.e.e.r.ExecuteRequestExecutor     : Received response 200
2022-09-28 16:08:27.060  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=getPrice, activity_name=getPrice, duration=73
2022-09-28 16:08:27.063  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=prepareApprovalForm, activity_name=prepareApprovalForm
2022-09-28 16:08:27.064  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=execute_activity, process=research-workflow:1:1c40eddb-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=prepareApprovalForm, activity_name=prepareApprovalForm, activity_type=ExecuteScript
2022-09-28 16:08:27.068  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=end_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=prepareApprovalForm, activity_name=prepareApprovalForm, duration=5
2022-09-28 16:08:27.072  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : event=start_activity, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=approvalForm, activity_name=approvalForm
2022-09-28 16:08:27.093 ERROR 18900 --- [aTaskExecutor-1] org.camunda.bpm.engine.context           : ENGINE-16004 Exception while closing command context: couldn't execute activity <serviceTask id="approvalForm" ...>: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source: (String)"{"id":"approvalForm","on":null,"if":null,"else":null,"to":{"stream-id":"dZ43WXzFtYPepTjtpytUv3///pKh2n6udA=="},"content":"<form id=\"approvalForm\"> <h2>Research Approval Form</h2><hr/> Author: Dilan Vaghela (DEV2)<br/>Ticker: AAPL<br/>Current Price: $146.77<br/>Target Price: $176.124<br/>Stop Loss: $117.41600000000001<br/><br/>Research Content: Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.
Apple coming o"[truncated 151 chars]; line: 1, column: 487] (through reference chain: com.symphony.bdk.workflow.swadl.v1.activity.message.SendMessage["content"])

org.camunda.bpm.engine.impl.pvm.PvmException: couldn't execute activity <serviceTask id="approvalForm" ...>: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source: (String)"{"id":"approvalForm","on":null,"if":null,"else":null,"to":{"stream-id":"dZ43WXzFtYPepTjtpytUv3///pKh2n6udA=="},"content":"<form id=\"approvalForm\"> <h2>Research Approval Form</h2><hr/> Author: Dilan Vaghela (DEV2)<br/>Ticker: AAPL<br/>Current Price: $146.77<br/>Target Price: $176.124<br/>Stop Loss: $117.41600000000001<br/><br/>Research Content: Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.
Apple coming o"[truncated 151 chars]; line: 1, column: 487] (through reference chain: com.symphony.bdk.workflow.swadl.v1.activity.message.SendMessage["content"])
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:65) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:50) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.continueIfExecutionDoesNotAffectNextOperation(PvmExecutionImpl.java:2039) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute.execute(PvmAtomicOperationActivityExecute.java:42) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute.execute(PvmAtomicOperationActivityExecute.java:31) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:634) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:608) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl$6.callback(PvmExecutionImpl.java:1978) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl$6.callback(PvmExecutionImpl.java:1975) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.continueExecutionIfNotCanceled(PvmExecutionImpl.java:2045) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.dispatchDelayedEventsAndPerformOperation(PvmExecutionImpl.java:1994) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.dispatchDelayedEventsAndPerformOperation(PvmExecutionImpl.java:1975) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(PvmAtomicOperationTransitionNotifyListenerStart.java:60) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(PvmAtomicOperationTransitionNotifyListenerStart.java:30) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:66) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:76) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:643) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:618) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:62) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:76) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:643) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:618) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:62) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:76) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:643) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:618) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:62) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:634) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:608) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionCreateScope.scopeCreated(PvmAtomicOperationTransitionCreateScope.java:38) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationCreateScope.execute(PvmAtomicOperationCreateScope.java:54) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationCreateScope.execute(PvmAtomicOperationCreateScope.java:28) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:118) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:76) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.AsyncContinuationJobHandler.execute(AsyncContinuationJobHandler.java:81) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.AsyncContinuationJobHandler.execute(AsyncContinuationJobHandler.java:40) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.JobEntity.execute(JobEntity.java:134) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.cmd.ExecuteJobsCmd.execute(ExecuteJobsCmd.java:110) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.cmd.ExecuteJobsCmd.execute(ExecuteJobsCmd.java:43) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:28) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:110) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:72) ~[camunda-engine-spring-7.16.0.jar!/:7.16.0]
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.18.jar!/:5.3.18]
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:70) ~[camunda-engine-spring-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandCounterInterceptor.execute(CommandCounterInterceptor.java:35) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobHelper.executeJob(ExecuteJobHelper.java:57) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobsRunnable.executeJob(ExecuteJobsRunnable.java:110) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobsRunnable.run(ExecuteJobsRunnable.java:71) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source: (String)"{"id":"approvalForm","on":null,"if":null,"else":null,"to":{"stream-id":"dZ43WXzFtYPepTjtpytUv3///pKh2n6udA=="},"content":"<form id=\"approvalForm\"> <h2>Research Approval Form</h2><hr/> Author: Dilan Vaghela (DEV2)<br/>Ticker: AAPL<br/>Current Price: $146.77<br/>Target Price: $176.124<br/>Stop Loss: $117.41600000000001<br/><br/>Research Content: Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.
Apple coming o"[truncated 151 chars]; line: 1, column: 487] (through reference chain: com.symphony.bdk.workflow.swadl.v1.activity.message.SendMessage["content"])
    at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:392) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:351) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1821) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:315) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:176) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.symphony.bdk.workflow.engine.camunda.CamundaExecutor.execute(CamundaExecutor.java:108) ~[classes!/:na]
    at org.camunda.bpm.engine.impl.bpmn.delegate.JavaDelegateInvocation.invoke(JavaDelegateInvocation.java:40) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:58) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocationInContext(DefaultDelegateInterceptor.java:92) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:63) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.execute(ServiceTaskJavaDelegateActivityBehavior.java:55) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.performExecution(ServiceTaskJavaDelegateActivityBehavior.java:44) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.TaskActivityBehavior.execute(TaskActivityBehavior.java:69) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ClassDelegateActivityBehavior$1.call(ClassDelegateActivityBehavior.java:68) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ClassDelegateActivityBehavior$1.call(ClassDelegateActivityBehavior.java:65) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior.executeWithErrorPropagation(AbstractBpmnActivityBehavior.java:90) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ClassDelegateActivityBehavior.execute(ClassDelegateActivityBehavior.java:65) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:61) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    ... 75 common frames omitted
Caused by: com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source: (String)"{"id":"approvalForm","on":null,"if":null,"else":null,"to":{"stream-id":"dZ43WXzFtYPepTjtpytUv3///pKh2n6udA=="},"content":"<form id=\"approvalForm\"> <h2>Research Approval Form</h2><hr/> Author: Dilan Vaghela (DEV2)<br/>Ticker: AAPL<br/>Current Price: $146.77<br/>Target Price: $176.124<br/>Stop Loss: $117.41600000000001<br/><br/>Research Content: Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.
Apple coming o"[truncated 151 chars]; line: 1, column: 487]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:735) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.base.ParserBase._throwUnquotedSpace(ParserBase.java:1110) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString2(ReaderBasedJsonParser.java:2155) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString(ReaderBasedJsonParser.java:2126) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.getText(ReaderBasedJsonParser.java:320) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:265) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:313) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    ... 93 common frames omitted

2022-09-28 16:08:27.102  INFO 18900 --- [aTaskExecutor-1] audit-trail                              : job=6774a31d-3f3f-11ed-9156-9cb6d09423cf, job_type=async-continuation, process=285d5ce1-3f3f-11ed-9156-9cb6d09423cf, process_key=research-workflow, activity=intermediateCatchEvent_c7867148-491a-4be2-8461-8d970874d2e9
2022-09-28 16:08:27.111  WARN 18900 --- [aTaskExecutor-1] org.camunda.bpm.engine.jobexecutor       : ENGINE-14006 Exception while executing job 6774a31d-3f3f-11ed-9156-9cb6d09423cf:

org.camunda.bpm.engine.impl.pvm.PvmException: couldn't execute activity <serviceTask id="approvalForm" ...>: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source: (String)"{"id":"approvalForm","on":null,"if":null,"else":null,"to":{"stream-id":"dZ43WXzFtYPepTjtpytUv3///pKh2n6udA=="},"content":"<form id=\"approvalForm\"> <h2>Research Approval Form</h2><hr/> Author: Dilan Vaghela (DEV2)<br/>Ticker: AAPL<br/>Current Price: $146.77<br/>Target Price: $176.124<br/>Stop Loss: $117.41600000000001<br/><br/>Research Content: Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.
Apple coming o"[truncated 151 chars]; line: 1, column: 487] (through reference chain: com.symphony.bdk.workflow.swadl.v1.activity.message.SendMessage["content"])
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:65) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:50) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.continueIfExecutionDoesNotAffectNextOperation(PvmExecutionImpl.java:2039) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute.execute(PvmAtomicOperationActivityExecute.java:42) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute.execute(PvmAtomicOperationActivityExecute.java:31) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:634) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:608) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl$6.callback(PvmExecutionImpl.java:1978) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl$6.callback(PvmExecutionImpl.java:1975) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.continueExecutionIfNotCanceled(PvmExecutionImpl.java:2045) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.dispatchDelayedEventsAndPerformOperation(PvmExecutionImpl.java:1994) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.PvmExecutionImpl.dispatchDelayedEventsAndPerformOperation(PvmExecutionImpl.java:1975) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(PvmAtomicOperationTransitionNotifyListenerStart.java:60) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(PvmAtomicOperationTransitionNotifyListenerStart.java:30) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:66) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:76) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:643) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:618) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:62) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:76) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:643) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:618) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:62) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:76) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:643) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:618) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.core.operation.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:62) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:111) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:634) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:608) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationTransitionCreateScope.scopeCreated(PvmAtomicOperationTransitionCreateScope.java:38) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationCreateScope.execute(PvmAtomicOperationCreateScope.java:54) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationCreateScope.execute(PvmAtomicOperationCreateScope.java:28) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.AtomicOperationInvocation.execute(AtomicOperationInvocation.java:99) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.invokeNext(CommandInvocationContext.java:131) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performNext(CommandInvocationContext.java:118) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:86) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandInvocationContext.performOperation(CommandInvocationContext.java:76) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.AsyncContinuationJobHandler.execute(AsyncContinuationJobHandler.java:81) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.AsyncContinuationJobHandler.execute(AsyncContinuationJobHandler.java:40) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.persistence.entity.JobEntity.execute(JobEntity.java:134) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.cmd.ExecuteJobsCmd.execute(ExecuteJobsCmd.java:110) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.cmd.ExecuteJobsCmd.execute(ExecuteJobsCmd.java:43) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:28) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:110) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:72) ~[camunda-engine-spring-7.16.0.jar!/:7.16.0]
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.18.jar!/:5.3.18]
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:70) ~[camunda-engine-spring-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.CommandCounterInterceptor.execute(CommandCounterInterceptor.java:35) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobHelper.executeJob(ExecuteJobHelper.java:57) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobsRunnable.executeJob(ExecuteJobsRunnable.java:110) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.jobexecutor.ExecuteJobsRunnable.run(ExecuteJobsRunnable.java:71) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
    at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source: (String)"{"id":"approvalForm","on":null,"if":null,"else":null,"to":{"stream-id":"dZ43WXzFtYPepTjtpytUv3///pKh2n6udA=="},"content":"<form id=\"approvalForm\"> <h2>Research Approval Form</h2><hr/> Author: Dilan Vaghela (DEV2)<br/>Ticker: AAPL<br/>Current Price: $146.77<br/>Target Price: $176.124<br/>Stop Loss: $117.41600000000001<br/><br/>Research Content: Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.
Apple coming o"[truncated 151 chars]; line: 1, column: 487] (through reference chain: com.symphony.bdk.workflow.swadl.v1.activity.message.SendMessage["content"])
    at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:392) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:351) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1821) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:315) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:176) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.symphony.bdk.workflow.engine.camunda.CamundaExecutor.execute(CamundaExecutor.java:108) ~[classes!/:na]
    at org.camunda.bpm.engine.impl.bpmn.delegate.JavaDelegateInvocation.invoke(JavaDelegateInvocation.java:40) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:58) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocationInContext(DefaultDelegateInterceptor.java:92) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:63) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.execute(ServiceTaskJavaDelegateActivityBehavior.java:55) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ServiceTaskJavaDelegateActivityBehavior.performExecution(ServiceTaskJavaDelegateActivityBehavior.java:44) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.TaskActivityBehavior.execute(TaskActivityBehavior.java:69) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ClassDelegateActivityBehavior$1.call(ClassDelegateActivityBehavior.java:68) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ClassDelegateActivityBehavior$1.call(ClassDelegateActivityBehavior.java:65) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior.executeWithErrorPropagation(AbstractBpmnActivityBehavior.java:90) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.bpmn.behavior.ClassDelegateActivityBehavior.execute(ClassDelegateActivityBehavior.java:65) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    at org.camunda.bpm.engine.impl.pvm.runtime.operation.PvmAtomicOperationActivityExecute$2.callback(PvmAtomicOperationActivityExecute.java:61) ~[camunda-engine-7.16.0.jar!/:7.16.0]
    ... 75 common frames omitted
Caused by: com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value
 at [Source: (String)"{"id":"approvalForm","on":null,"if":null,"else":null,"to":{"stream-id":"dZ43WXzFtYPepTjtpytUv3///pKh2n6udA=="},"content":"<form id=\"approvalForm\"> <h2>Research Approval Form</h2><hr/> Author: Dilan Vaghela (DEV2)<br/>Ticker: AAPL<br/>Current Price: $146.77<br/>Target Price: $176.124<br/>Stop Loss: $117.41600000000001<br/><br/>Research Content: Apple Inc. has increased new popular mobile devices and laptops. There is speculation that Apple will release a self-driving car by 2025.
Apple coming o"[truncated 151 chars]; line: 1, column: 487]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:735) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.base.ParserBase._throwUnquotedSpace(ParserBase.java:1110) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString2(ReaderBasedJsonParser.java:2155) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString(ReaderBasedJsonParser.java:2126) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.getText(ReaderBasedJsonParser.java:320) ~[jackson-core-2.13.2.jar!/:2.13.2]
    at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:265) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:313) ~[jackson-databind-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
    ... 93 common frames omitted

Process finished with exit code -1

Fixed and will released in WDK 1.3.0


chore: add bitbucket build canary badge

What kind of change does this PR introduce?
Add a badge to keep an eye over the pipeline.
What is the current behavior?
Please link any relevant issues here.
What is the new behavior?
Feel free to include screenshots if it includes visual changes.
Additional context
Add any other context or screenshots.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

0 of 0   changed or added relevant lines in 0 files are covered.
7 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.03%) to 60.002%

Files with Coverage Reduction
New Missed Lines
%

internal/storage/rm/rm.go
2
89.53%

internal/gen/keys/keys.go
5
12.9%

Totals

Change from base Build<PHONE_NUMBER>1:
-0.03%

Covered Lines:
6458

Relevant Lines:
10763

💛  - Coveralls


Added Code to launch the application from link.

Modified timed_link to launch TeamLink from URL.
Basically it automatically opens up the the app without any need for Human Interaction.
Way to 100% Attendance. :+1:

Keyboard manipulation is a good feature. Nice work, it works just like it should.


Question regarding Integration - not really an issue

Hey @Woyken, does this still require @mauro-midolo HACS integration.
I ask because the repo for Home Assistant Electrolux Care Integration (Not Official) is gone from HACS.

Interesting, looks like he deleted that repo completely.
Anyway, this is a API wrapper library. It doesn't matter which integration uses it.
Looks like some work has already been started on:
https://github.com/albaintor/homeassistant_electrolux_status
That's good news.
We'll have to wait and see how all of this is going to work out

Hi all,
I recently read this article https://www.ilsoftware.it/haier-contro-i-plugin-home-assistant-minaccia-azioni-legali/.
I don't want to do anything illegal or anything not approved by Elettrolux.
For these reasons I decided to delete and remove the integration.
If someone wants to create a new integration, perhaps even asking for authorization directly from electrolux, take the path.
Sorry for the inconvenience.

@mauro-midolo
Thanks for letting us know.
It's understandable. Recently there have been a few companies that shut down open source projects like this, which is really sad.
Thank you for all the time you put into this project

@mauro-midolo, I understand your concern, but you haven't done anything illegal.
As I understand, the API is public. Meaning that if the Electrolux group did not want "apps" to use it they would not have made it public.
They even have a developers portal  here for API use: https://portal-eu-nonprod.electrolux.com/
But I don't know how you would sign up. The most they can do is to send a letter asking you to take the repo down.
"The plugins themselves are open-source, but it is unclear if they incorporate Haier's intellectual property, such as software code or proprietary protocols, which would give the firm a legal basis for the request.
On the other hand, if the plugins do not infringe on Haier's intellectual property or fall under fair use provisions, the creator could opt to defend his work and keep the plugins available to the community."
https://www.bleepingcomputer.com/news/security/haier-hits-home-assistant-plugin-dev-with-takedown-notice/
However, in the end they didn't and the repo still is there!
You have the community behind you so I encourage you to keep going.  Once we hit critical mass then that's a different story.

Hi all,
I recently read this article https://www.ilsoftware.it/haier-contro-i-plugin-home-assistant-minaccia-azioni-legali/. I don't want to do anything illegal or anything not approved by Elettrolux. For these reasons I decided to delete and remove the integration.
If someone wants to create a new integration, perhaps even asking for authorization directly from electrolux, take the path.
Sorry for the inconvenience.

You didn't have to delete it.
Few things, they'd give you a warning first, but my understanding is Haier rolled back their demands anyway. Secondly, you could have let someone fork it, rather than deleting all the code...

There are forks around. I also have a fork that I synced yesterday as I was going to submit a couple of PRs for enumeration and a couple of issues I ran into. I was waiting to see what path @mauro-midolo was going to go down.
I don't intend to run a project as I am not a developer, I also don't use HACS. But anyone is welcome to fork https://github.com/allistermaguire/homeassistant_electrolux_status or I can transfer it to someone.
Thank you @mauro-midolo for providing us with a way to use Electrolux appliances with Hass till now, much appreciated.

@mauro-midolo
Haier had a change of heart. See here, which I had already posted in your repository as wel a couple of days ago.

@mauro-midolo I don't think you have to worry. People, including me, buy Electrolux and AEG products bevatte of the integration possibility with HA.
So they are happy with this kind of integrations.

@schumi2004 How did you add it to HACS? I can't find the electolux status in HACS

@schumi2004 How did you add it to HACS? I can't find the electolux status in HACS

Its a custom install: HACS > press the 3 dots > Custom Repository > Post the link (https://github.com/albaintor/homeassistant_electrolux_status) > Select Integration

Just added https://github.com/albaintor/homeassistant_electrolux_status as a custom repo in HACS, let's see what happens.
/edit And it seems to work. I do seem to miss a few sensors for my washing machine like detergent level etc

@schumi2004 I lost the integration!!!

Looks like there is another fork by witold-gren that is being worked on too
https://github.com/witold-gren/homeassistant_electrolux_status
This fork is active too:
https://github.com/albaintor/homeassistant_electrolux_status

Found a fork that works

@wgumaa which one is it?

@wgumaa which one is it?

If you go to HACS and search Electrolux it the last one.
However it's the last version beta so still not all entities are available or correct

Okay thanks that one doesn't work for me. I get an error. They now what it is. But after that the development had stopped :(

Okay thanks that one doesn't work for me. I get an error. They know what it is. But after that the development has stopped :(
For me it's unclear if there is a fork where the development continuous.

What kind of error?
Else remove all excisiting Electrolux (HACS) integrations and add this custom HACS repo https://github.com/albaintor/homeassistant_electrolux_status like explained by https://github.com/Woyken/py-electrolux-ocp/issues/5#issuecomment-1916372552
Download in HACS and install new integration.
Should work perfect except a few entities are missing for now.

@schumi2004 It's a know issue and depends on your device you have. I have an AEG dryer.
It would be fixed, but then the development stopped.
After log in there is an error and it keeps trying, (which will block the account for a while)
Logger: py.warnings
Source: runner.py:188
First occurred: 11:46:09 (1 occurrences)
Last logged: 11:46:09
/usr/local/lib/python3.11/asyncio/base_events.py:1926: RuntimeWarning: coroutine 'OneAppApi.get_appliances_list' was never awaited handle = None # Needed to break cycles when an exception occurs.
=== AFTER THAT ===
Logger: homeassistant
Source: runner.py:145
First occurred: 11:46:19 (3 occurrences)
Last logged: 11:46:19
Error doing job: Unclosed client session
Error doing job: Unclosed connector
=== AFTER THAT ===
This error originated from a custom integration.
Logger: custom_components.electrolux_status
Source: custom_components/electrolux_status/init.py:109
Integration: Electrolux Care Integration V2 (documentation, issues)
First occurred: 11:46:12 (2 occurrences)
Last logged: 11:46:19
'NoneType' object has no attribute 'get'
Traceback (most recent call last):
File "/config/custom_components/electrolux_status/init.py", line 109, in _async_update_data
app.setup(ElectroluxLibraryEntity(appliance_name, connection_state, appliance_status,
File "/config/custom_components/electrolux_status/api.py", line 338, in setup
self.entities = [
^
File "/config/custom_components/electrolux_status/api.py", line 339, in
entity.setup(data)
File "/config/custom_components/electrolux_status/api.py", line 194, in setup
self._state = data.get_value(self.attr, self.field, self.source)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/electrolux_status/api.py", line 34, in get_value
entry = container.get(attr_name)
^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'

Hi I am still on it but I was busy. I had to rewrite many parts to make it work

Thank you very much @albaintor

Hi there, I am currently developing the new integration but since today I can't get access to the capabilities :
aiohttp.client_exceptions.ClientResponseError: 504, message='Gateway Timeout', url=URL('https://api.eu.ocp.electrolux.one/appliance/api/v2/appliances/<Appliance ID XXXXX>/capabilities')
Is this only me (my account is blocked temporarily or no) or is this for everyone ?

the same problem
First occurred: 31. 01. 2024 v 20:02:47 (57 occurrences)
Last logged: 09:04:33
aiohttp.client_exceptions.ClientResponseError: 504, message='Gateway Timeout', url=URL('https://api.eu.ocp.electrolux.one/appliance/api/v2/appliances/***/capabilities')

504 sounds like their servers are having problems...

I don't know how to get over this problem : I think they blocked somehow the access to this API (but not the listing and the state retrievals).
I guess that their server is overwhelmed by "us" : this integration is not clean as it polls every few seconds the status of each appliance. This is the reason why I considered using the websocket API where data is pushed their server only if something changes, but I didn't expect they blocked the extraction of capabilities which is necessary to build all the entities

Their app is having problems loading for me today too....
Also response contains this:

It's totally their servers acting up.
I'd expect it to back to normal after a while

Maybe their servers have problems but as @standahabich reported, I am not sure this will be possible again :
{"Message":"User is not authorized to access this resource with an explicit deny"}

@albaintor Can you still log into the app. When I try the integration for me there is the know error and because it keeps trying my account get blocked and I can't login into the app anymore, says it's blocked for awhile.
I then need to reset the password and after that I can login again.
The explicit deny may be because of this.

It's been intermittent all day including the Electrolux app.
Suggestion: why dont we move the conversation to @albaintor page as this is where its being worked on and not burden @Woyken! :)

I agree, can be done here
https://github.com/albaintor/homeassistant_electrolux_status/discussions

Hi there, I was trying for the past two days to make this integration working but no luck yet.
Reading the instructions I need to setup:
My Electrolux Care/My AEG Care (EMEA region)
Electrolux Kitchen/AEG Kitchen (EMEA region)
As an iOS app I find only AEG app where I am connecting to my drier.
Using the same username and password in HA setup gives me error: Failed to set up: Check the logs.
Any help in setting this up is highly appreciated.
It will also be great if someone can write step by step installation guide as I feel I miss some small detail.
May thanks!

I think new home assistant update broke some things. It was working before I updated to 2024.10.2.


Provide distribution metadata as ‘data’ attributes on links in simple index project page

Cross-post of a proposition I made on discuss.python.org:

Provide distribution metadata as ‘data’ attributes on links in simple index

In short: we extend the concept of the data-requires-python attribute to cover all the necessary metadata for pip's dependency resolution.
(There are some more details in the post over there, in case I forget to mention them here.)
Basically we write the content of Requires-Dist in a data attribute on each link, and whatever else is needed. Could be each metadata field in its own attribute, could be all fields in one attribute. Could be Base 64 encoded. Could be the whole METADATA file Base 64 encoded in one data attribute. Whatever works best.
The one big advantage, is that in a best case scenario, a single HTTP request per project is enough to complete the whole dependency resolution. We could even go as far as letting pip read that HTML page from cache and skip even more network traffic.
Drawbacks:

sdist is still an issue (no surprise)
backfill necessary (unless the info previously transmitted from twine is still available in some DB)
not helpful for static HTTP servers (and generally alternative implementations would need to catch up)
is the info coming from twine reliable? (warehouse could read it from the distributions, but that is an entirely different story)
and much more I guess, I count on you

Advantages:

1 HTTP request per project (best case scenario)
most of the code paths are already here (in pip, in twine, in warehouse), what is good enough for Requires-Python should be good enough for the other fields
seems backward compatible to me

I obviously do not know enough about the existing code to make a good guess, but seems pretty straightforward to implement.
Related:

Expose the METADATA file of wheels in the simple API: https://github.com/pypa/warehouse/issues/8254

Providing the METADATA file directly (i.e. #8254) is generally going to be more extensible (in case we add more capable behaviors around Provides and other metadata fields) and doesn't tie the Core Metadata to the Simple API (or vice-versa, however you wanna look at it). This is a big reason I'd prefer the proposal in OP instead of the one in that discuss.python.org thread.

most of the code path are already here

This is not True. Regardless of what shape this takes, twine is likely not going to be affected much and pip needs to be updated to take advantage of this additional information; I don't think a reduced HTTP request is worth it TBH, but folks can have a different opinion on the trade-offs here.

warehouse could read it from the distributions, but that is an entirely different story

Warehouse already does this, and provides this information in a non-standard JSON API.

and much more I guess, I count on you

We'd also need to figure out some mechanism to clearly add values for all the relevant fields losslessly into HTML tag attributes. IDK if it'll prove to be painful, but I'm not sure. ;)

Are JSON-LD and RDFa the appropriate Linked Data specs for metadata and metadata-in-HTML?
There are parsers in JS and in Python which handle RDFa and JSON-LD metadata in the general case: no modifications to parsers should be necessary when the schema changes.
Python & RDFa:

https://github.com/scrapinghub/extruct wraps pyRDFa

https://github.com/RDFLib/pyrdfa3

Python & JSON-LD:

https://github.com/digitalbazaar/pyld
https://github.com/RDFLib/rdflib-jsonld

extruct wraps pyRDFa

JS + JSON-LD & RDFa:

https://github.com/digitalbazaar/jsonld.js
https://www.w3.org/community/rdfjs/wiki/Comparison_of_RDFJS_libraries

Providing the METADATA file directly (i.e. #8254) is generally going to be more extensible (in case we add more capable behaviors around Provides and other metadata fields) and doesn't tie the Core Metadata to the Simple API (or vice-versa, however you wanna look at it). This is a big reason I'd prefer the proposal in that issue instead of the one here.

That is why I also suggest that we could publish the full METADATA file (compressed, encoded, whatever) as data attribute, if it makes sense.
As mentioned in the other thread, overly long long-description could be an issue, though. The HTML page could get quite heavy. So maybe a simplified version of the METADATA, there are things we can be quite sure we do not need: author, maintainer, summary, long description.
METADATA is only for wheels though. Core metadata fields should cover a much wider range of distributions (not all sdists have reliable dependency info, but I would assume that a fair amount have).
All in all, I do not see how this solution would be less extensible than the other. Distributions that do not have a field that does not exist yet, simply do not have it, and won't have it either once it is added to the spec. But probably I am missing some information to make a reasonable comparison.

most of the code path are already here

This is not True. Regardless of what shape this takes, twine is likely not going to be affected much and pip needs to be updated to take advantage of this additional information.

Yes, mistake on my side. I had in mind the code that is already in production. So I didn't count pip's new resolver which is still experimental.
From my point of view it is an advantage: the code for pip's dependency resolver would become much more simple as a result, wouldn't it?
And if we compare the two propositions, it's probably a draw: in both solutions, pip's code would have to change.

1 HTTP request per project (best case scenario)

I don't think a reduced HTTP request is worth it TBH, but folks can have a different opinion on the trade-offs here.

Maybe we are not speaking about the same thing. Of course, it would be only marginally better than the download the METADATA file solution. But when I wrote this proposition I did not know about that solution. So when I say huge gain, I mean compared to the current solution (downloading all distributions until we find one that fits).

warehouse could read it from the distributions, but that is an entirely different story

Warehouse already does this, and provides this information in a non-standard JSON API.

This is one aspect I am very much not clear on. What kind of process happens in warehouse when a distribution is uploaded? Is the distribution somehow opened and is some data extracted out of it (trove classifiers, names of the author and maintainer, etc.)? Or does all the info come from the upload (i.e. from twine)?
If some of the info is already there, it is quite good news, no need for intensive backfill  operations.

We'd also need to figure out some mechanism to clearly add values for all the relevant fields losslessly into HTML tag attributes. IDK if it'll prove to be painful, but I'm not sure. ;)

I do not understand that point.
Thanks for the feedback.

@westurner I think in both threads we are looking for a quick way to improve pip's dependency resolution with minimal effort: only slightly extending the current simple repository API (PEP 503). I believe there are some other plans for a completely new PyPI API, your suggestions might be a better fit for those plans. Especially here in this solution, I do not really want to introduce anything new, I just want to reuse a technique already in use.
Or maybe I am entirely missing the point of your messages. How do you see JS + JSON-LD & RDFa fitting in here?

We now have PEP 658.


[FIX] Lint and adjusts

Just a simple PR to provide some adjustments, lint and organisation of assets and others.
Take a look and let me know if it makes sense.

Plus: a special look at main.go

I'm sorry but I will close this PR, due to this factors:

the code is coded as it should be, the 2 lines you removed are here for "safety" purposes.
Linting is something for people and depends on everyone, so I think for now, if there should be any changes of linting in the go files, it should be comming from me, sorry.
the files that aren't needed by people that don't develop are situated in the .github directory. This is why things are in it and the logos and other things like that are into it. the assets shows pretty much its purpose, only for the icons of the project.


c++ standards after c++17 not supported

from wise_enum_detail.h
// optional type needed for interface
#ifndef WISE_ENUM_OPTIONAL_TYPE
#if __cplusplus == 201703L
#include <optional>

conditional should be >=

I think this issue has been fixed in commit 7fb8445644e54f77c23e6751fbc864d650b55db9 and can be closed.

Great, thanks.