Skip to content

Troubleshooting

The provider did not read a declared input

Example:

AI provider did not read declared input 'rows' with the required FlaskTrack SDK call.

Confirm all three details:

  1. The script uses the exact literal port name: "rows".
  2. The helper matches the port type: input_table, input_json, or input_file.
  3. The call is present in the final script rather than only mentioned in a comment or stored in a variable for later use.

For Python Arrow input, the expected call is:

rows = ft.input_table("rows")

groupBy or grouping method not found

Use the method for the dataframe library actually used by the script:

Object Method
PyArrow table .group_by(...).aggregate(...)
Polars dataframe .group_by(...).agg(...)
pandas dataframe .groupby(...).agg(...)
dplyr dplyr::group_by(...)

groupBy is not valid for these libraries. Also check that the script did not convert the object from one library to another before grouping.

A port was not found or was rejected

  • Compare capitalization and spelling with the block editor.
  • Confirm that the port is declared in the correct direction.
  • Confirm that the saved block version includes the port.
  • Remove spaces, hyphens, periods, and other unsupported characters.
  • Confirm that the connected port types match.

A required column is missing

Inspect the upstream output schema and compare it with the script. Column names are case-sensitive. Add an early required-column check so the error lists every missing name together.

If an upstream block renamed a column, either update this script or preserve the expected name upstream. Do not silently substitute a different measurement.

Arrow input cannot be read

Confirm that the port is an Arrow table and that the upstream output was published with output_table. A CSV or Parquet file must use a file port and the corresponding input_csv or input_parquet helper.

JSON output fails with NaN or infinity

These values are not valid JSON. Decide explicitly how to represent them:

import math

safe_value = value if math.isfinite(value) else None
ft.output_json("summary", {"value": safe_value})

Use null only when it accurately represents the scientific meaning of the missing or non-finite result.

The script created a file but the output is missing

Creating a local file does not publish it. Call the matching SDK output helper:

ft.output_file("report", report_path, "application/pdf")

The output port must be declared as File.

The run exceeded time or memory limits

  • Select only required Parquet columns.
  • Use PyArrow or Polars instead of converting a large table to pandas.
  • Filter rows before joins, grouping, or dataframe conversion.
  • Avoid reading a large file fully into memory when its library supports streaming.
  • Remove accidental repeated reads or conversions.

If representative production data cannot fit within the configured pipeline limits, revise the pipeline design or contact your FlaskTrack administrator.

A package is unavailable

Use packages provided by the selected runtime. If a draft imports a library that is not available, choose an installed alternative or ask an administrator whether it can be added to the runtime image. Do not install packages from the network inside a pipeline script.