Cloudflare Docs
D1
Edit this page on GitHub
Set theme to dark (⇧+D)

Debug

D1 allows you to capture exceptions and log errors returned when querying a database. To debug D1, you will use the same tools available when debugging Workers.

​​ Handle errors

The D1 client API returns detailed error messages within an Error object.

To ensure you are capturing the full error message, log or return e.message as follows:

try {
await db.exec("INSERTZ INTO my_table (name, employees) VALUES ()");
} catch (e: any) {
console.error({
message: e.message
});
}
/*
{
"message": "D1_EXEC_ERROR: Error in line 1: INSERTZ INTO my_table (name, employees) VALUES (): sql error: near \"INSERTZ\": syntax error in INSERTZ INTO my_table (name, employees) VALUES () at offset 0"
}
*/

​​ View logs

View a stream of live logs from your Worker by using wrangler tail or via the Cloudflare dashboard.

​​ Report issues

You should include as much of the following in any bug report:

  • The ID of your database. Use wrangler d1 list to match a database name to its ID.
  • The query (or queries) you ran when you encountered an issue. Ensure you redact any personally identifying information (PII).
  • The Worker code that makes the query, including any calls to bind() using the client API.
  • The full error text, including the content of error.cause.message.