Skip to content

โ† Blog

Serverless is a contract with an allow-list

Databricks serverless refused three of my classic idioms. The best error had an empty string where the type name should be โ€” at table 21 of 43, with twenty Delta targets already created.

Serverless is a contract with an allow-list

The โ‚ฌ100 Lakehouse โ€” 6/12

Databricks serverless refused three of my classic idioms. The best error had an empty string where the type name should be โ€” at table 21 of 43, with twenty Delta targets already created.

Serverless is the deliberate choice behind the โ‚ฌ100/mo ceiling (auto_stop_mins=1). It is also a contract with an allow-list โ€” and I paid for each clause in hours.

โ†’ spark._jvm, the normal PySpark way to touch the FileSystem: refused with [JVM_ATTRIBUTE_NOT_SUPPORTED]. The error's suggested fix is a single-user cluster โ€” pay more to keep a private idiom. The actual fix: dbutils.fs.

โ†’ Postgres has a `time` type. Spark doesn't. The parquet carried TIME(MICROS) and the job died with "data type is not supported" โ€” type name blank. Fix: cast to TEXT in the extraction SELECT; '09:30:00' sorts and reads fine.

โ†’ psycopg[binary]>=3.2 died with SIGABRT (exit 134) inside the C loader. The serverless image ships its own psycopg; the version range accepted it, and only psycopg-binary was installed fresh โ€” pure-Python package and compiled shim from different releases. Fix: pin both to 3.3.4, same as uv.lock.

Cheap serverless is a contract with an allow-list โ€” every refused idiom has a supported equivalent, and "upgrade a tier" is almost always the wrong answer to a price.

What's the most expensive error message you've ever debugged โ€” and did it even name the thing that was broken?

Databricks ยท dbt ยท Airflow ยท Terraform ยท AWS

P.S. New tech post every Wednesday.

#100EuroLakehouse #Databricks #Serverless