Skip to content

Every execution row is written with execution_engine localex, including Tapis runs #109

Description

@mosoriob

What happens

A run submitted through the Tapis route is stored with execution_engine: "localex".

Measured at TACC on 2026-08-09. ui-react posted to
POST /v1/executionEngines/tapis and got 202. The Ensemble Manager created a real Tapis
job. The row in Hasura is:

id                b2433b18-6095-4638-8f17-323932e21e6f
run_id            28d20b50-836b-4e9d-bb0d-e6596534fc04-007   <- a Tapis job id
execution_engine  localex                                    <- wrong

Three more rows from the same session carry the same mismatch.

Root cause

execution_engine is a hardcoded literal in the shared creation path, so the engine that ran
the job never reaches the row.

src/classes/common/ExecutionCreation.ts, createExecutionMetadata:

const execution: Execution = {
    modelid: modelid,
    bindings: inputBindings,
    execution_engine: "localex",
    ...

The same file reads the real engine 18 lines later, from getConfiguration():

if (configuration.execution_engine === "tapis") { ... }

Impact

The server does not use the column. logsService and mint-functions both read
prefs.execution_engine from the deployment config, so logs and status polling are correct.

Clients do use it. In ui-react, MintResults reads the engine off the row for the result URL
rewrite (getResultUrl) and for the CSV export. Today the rewrite only fires for a result with
no url, so no user-visible break is confirmed. The column is still wrong for every consumer
and for any query that counts runs per engine.

Fix

Set execution_engine from getConfiguration().execution_engine instead of the literal.

Found while resolving #92.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions