kestra-io / kestra-io/plugin-graalvm
GraalVM Python task throws unhelpful error messages when expected output is an object
- Dominant language
- Java
- Stars
- 0
- Forks
- 1
- Avg merge
- 5h 23m
- Merged PRs (30d)
- 4
Description
### Describe the issue
When the variable you have listed in `outputs` is an object, it causes GraalVM to throw a huge error that is very unhelpful. Makes sense as to why it crashes, but it wasn't obvious to me if it was my code or the task. Took me a while to realise why it was happening with a more complex example. As soon as I returned my variable as a float, it worked.
Haven't tried it for other languages but suspect the same.
Reproducible with this flow:
```yaml
id: graalvm_error
namespace: company.team
tasks:
- id: graal
type: io.kestra.plugin.graalvm.python.Eval
outputs:
- data
script: |
import datetime
data = datetime.datetime.now()
```
Full error
```
va.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.graalvm.AbstractEval.lambda$as$3(AbstractEval.java:109)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at [io.kestra.plugin.graalvm.AbstractEval.as](http://io.kestra.plugin.graalvm.abstracteval.as/)(AbstractEval.java:108)
at io.kestra.plugin.
```

### Environment
- Kestra Version: `develop` OSS and EE
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the YAML flow with the GraalVM Python Eval task and inspect AbstractEval.java around line 108, which appears in the reported stack trace. Confirm how object-valued outputs are handled and make the failure explain the invalid output clearly; rerun the provided flow to verify the result is no longer an unhelpful repeated stack trace.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100