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.

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