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.
What happens
A run submitted through the Tapis route is stored with
execution_engine: "localex".Measured at TACC on 2026-08-09.
ui-reactposted toPOST /v1/executionEngines/tapisand got 202. The Ensemble Manager created a real Tapisjob. The row in Hasura is:
Three more rows from the same session carry the same mismatch.
Root cause
execution_engineis a hardcoded literal in the shared creation path, so the engine that ranthe job never reaches the row.
src/classes/common/ExecutionCreation.ts,createExecutionMetadata:The same file reads the real engine 18 lines later, from
getConfiguration():Impact
The server does not use the column.
logsServiceandmint-functionsboth readprefs.execution_enginefrom the deployment config, so logs and status polling are correct.Clients do use it. In
ui-react,MintResultsreads the engine off the row for the result URLrewrite (
getResultUrl) and for the CSV export. Today the rewrite only fires for a result withno
url, so no user-visible break is confirmed. The column is still wrong for every consumerand for any query that counts runs per engine.
Fix
Set
execution_enginefromgetConfiguration().execution_engineinstead of the literal.Found while resolving #92.