[ 
https://issues.apache.org/jira/browse/CAMEL-25899?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen reassigned CAMEL-25899:
-----------------------------------

    Assignee: Claus Ibsen

> camel-jbang - AI tools: the reload output of a write keeps the hint of a 
> failure, and a write of a script the routes load waits for the reload
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-25899
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25899
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-jbang
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Two gaps in what the write tools of the camel-jbang AI tools (the 
> camel-jbang-mcp server and camel ask) report after a dev-mode reload. Both 
> were seen in a night of benchmark runs against a local model.
> *1. The hint of a failed exchange is cut off*
> After a write, the answer includes what the routes logged after the reload, 
> each line cut at 400 characters. The line of a failed exchange starts with 
> some 250 characters of error-handler text, and the hint Camel adds comes late 
> in the exception message:
> {noformat}
> Failed delivery for (MessageId: 7188B2FCF80AE47-000000000000001B on 
> ExchangeId: 7188B2FCF80AE47-000000000000001B) at incoming-orders[log14] 
> enrich-and-dedupe.camel.yaml:42. Exhausted after delivery attempt: 1 caught: 
> org.apache.camel.language.bean.RuntimeBeanExpressionException: ... (the value 
> is the file as read (a GenericFile), not its data: unmarshal it first, ...)
> {noformat}
> The line is 831 characters, and the hint starts at about character 544, so 
> the agent never saw it in 119 writes. Only camel_get_log showed it.
> Fix: a WARN or ERROR line is compacted. The message ids and attempt count of 
> the error handler go, and so do the exchange dumps, the packages of exception 
> classes, and long bean dumps. A WARN or ERROR line may then be 800 
> characters. The line above becomes "ERROR Failed at incoming-orders[log14] 
> enrich-and-dedupe.camel.yaml:42: RuntimeBeanExpressionException: ... (the 
> value is the file as read ...)", with the whole hint.
> *2. A write of a script the routes load is answered at once*
> Writing a Groovy script that a route loads (setBody with groovy: 
> resource:file:mapping.groovy) answered in 3 ms: "An integration running the 
> file in dev mode reloads it now". Dev mode does reload the routes after the 
> change, but the agent read the log and the errors before the reload, saw 
> none, and said the step was done.
> Fix: a write of a script or template the routes load (.groovy, .js, .py, 
> .ftl, .vm, .mustache, .jslt, .jsonata) waits for the reload, as a route write 
> does. It reports the outcome and what the routes logged after it: "The 
> running integration reloaded its routes, which load the file. After the 
> reload it logged: ERROR Failed at mapping[setBody4] mapping.camel.yaml:14: 
> NullPointerException: Cannot get property 'id' on null object".
> _Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to