Macro 'dbt.current_timestamp' takes no arguments" error
Fixes the dbt macro signature error by calling dbt.current_timestamp with no arguments, matching the current dbt-core definition. Use when compilation fails because a macro was called with arguments it does not accept. Not for custom macros you own, where you control the signature.
TL;DR
dbt.current_timestamp() takes no arguments in current dbt-core versions; older code or examples pass one anyway. Remove the argument from the call. If you need a timestamp with specific behavior, use the adapter-specific macro or dbt-utils instead.
Error
"Macro 'dbt.current_timestamp' takes no arguments" errorSteps
- Search the project for
current_timestamp(calls with arguments. Expected: you find the offending call, often in a snapshot or an incremental model. - Change the call to take no arguments:
{{ dbt.current_timestamp() }}. Expected: the call matches the macro signature. - If you need database-specific timestamp logic, check your adapter's macros for an alternative (for example a snapshot-friendly variant). Expected: you use a macro whose signature you verified.
- Run
dbt compile --select [AFFECTED MODEL]. Expected: compilation succeeds. - Run the model or snapshot. Expected: it builds with correct timestamps.
When to use
- Compilation fails naming
dbt.current_timestampand argument count. - You upgraded dbt-core and previously working code broke.
When not to use
- The macro is your own custom macro (change its definition instead).
- The error names a different macro (check that macro's actual signature).
Tool compatibility
- dbt Core 1.x, all adapters. Snapshot timestamp handling varies slightly by adapter.
Variant phrasings
Macro takes no arguments (other dbt built-ins)
Same fix pattern: check the macro definition in the global project and match the call.
current_timestamp behaved differently after upgrade
Signature and behavior both evolve; read the macro source for your installed version.
Why it happens
dbt-core refactored built-in macros across versions, and current_timestamp lost its parameter. Code written against the old signature, or copied from old examples, passes an argument the new macro rejects.
Edge cases
- dbt-utils ships similarly named macros with different signatures; make sure you know which one you called.
- Snapshots depend on
current_timestampforupdated_at; a broken call breaks every snapshot run. - Pinning dbt-core avoids surprise signature changes in CI.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_EQoajYwndQA48Ho-96dU6A
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.