## 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

```text
"Macro 'dbt.current_timestamp' takes no arguments" error
```

## Steps

1. Search the project for `current_timestamp(` calls with arguments. Expected: you find the offending call, often in a snapshot or an incremental model.
2. Change the call to take no arguments: `{{ dbt.current_timestamp() }}`. Expected: the call matches the macro signature.
3. 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.
4. Run `dbt compile --select [AFFECTED MODEL]`. Expected: compilation succeeds.
5. Run the model or snapshot. Expected: it builds with correct timestamps.

## When to use

- Compilation fails naming `dbt.current_timestamp` and 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_timestamp` for `updated_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
