dbt-labs/dbt-core · error
job_execution_timeout_seconds must be a valid integer
Error message
job_execution_timeout_seconds must be a valid integer
What it means
Config validation in submit_python_job: the `job_execution_timeout_seconds` value from the model/adapter config could not be parsed as an integer, so the BigQuery job timeout cannot be constructed. The at-fault input is that config value as stored in the warehouse config.
Solutions
- Set job_execution_timeout_seconds to an integer (e.g. 300) in the profile or model config
- Remove quotes around the value if it was supplied as a string in YAML
- Check for accidental float or non-numeric values in the config
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/dbt-adapter/src/python/bigquery/mod.rs:157 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
AI-assisted analysis of dbt-labs/dbt-core@0267ce9170 (2026-09-07).
Data as JSON: /api/errors/e97029fe79cacf76.
Report an issue: GitHub.
Appendix: source
Thrown at crates/dbt-adapter/src/python/bigquery/mod.rs:157
&config
.get_attr("submission_method")
.ok()
.and_then(|v| v.as_str().map(|s| s.to_string()))
.unwrap_or_else(|| {
adapter
.get_db_config("submission_method")
.map(|v| v.to_string())
.unwrap_or_else(|| "serverless".to_string())
}),
)
.ok_or_else(|| AdapterError::new(AdapterErrorKind::Internal, "Invalid submission method"))?;
let job_execution_timeout = adapter
.get_db_config("job_execution_timeout_seconds")
.map(|v| v.to_string())
.map(|v| {
v.parse::<i64>()
.expect("job_execution_timeout_seconds must be a valid integer")
});
let default_timeout = if submission_method == SubmissionMethod::BigFrames {
60 * 60
} else {
24 * 60 * 60
};
let timeout = config
.get_attr("timeout")
.ok()
.and_then(|v| v.as_i64())
.or(job_execution_timeout)
.unwrap_or(default_timeout);
let packages: Vec<String> = config
.get_attr("packages")
.ok()View on GitHub (pinned to 0267ce9170)