kestra-io / kestra-io/plugin-graalvm

GraalVM Python task throws unhelpful error messages when expected output is an object

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
area/plugin good first issue
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.
```

![Image](https://github.com/user-attachments/assets/dd7e58c4-040e-488f-9b52-91e9f4bb3ad6)

### 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.