Skip to content

Commit 56ff788

Browse files
authored
[Doc] Timeout troubleshooting (#4482)
## Changes Many customers regularly raise questions about timeouts within the TF provider and Databricks. This PR adds some documentation explaining the main kinds of timeouts, how to diagnose which timeout you've experienced, and how to adjust it if possible. ## Tests <!-- How is this tested? Please see the checklist below and also describe any other relevant tests --> - [ ] `make test` run locally - [ ] relevant change in `docs/` folder - [ ] covered with integration tests in `internal/acceptance` - [ ] using Go SDK - [ ] using TF Plugin Framework
1 parent d4d3422 commit 56ff788

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

NEXT_CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
### Documentation
1414

1515
* Add an example for Databricks Apps permissions ([#4475](https://github.com/databricks/terraform-provider-databricks/pull/4475)).
16+
* Add explanation of timeouts to the troubleshooting guide ([#4482](https://github.com/databricks/terraform-provider-databricks/pull/4482)).
1617

1718
### Exporter
1819

docs/guides/troubleshooting.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,3 +245,29 @@ provider "databricks" {
245245
```
246246
247247
Remove the `account_id` argument from the workspace provider to resolve the error.
248+
249+
### Timeouts
250+
251+
You may see several different kinds of timeout messages when using the Terraform Provider for Databricks. Here are the three main types of timeouts and how to address them:
252+
253+
1. The **resource timeout** ensures that the context passed to the CRUD methods has a timeout set. The default resource timeout for most resources is 20m. If this timeout is exceeded, users will see a message like `context: deadline exceeded`. Resources must enable this timeout resource by resource by setting the `timeouts` block. Once present, users can modify this timeout as needed on a per-resource basis like so:
254+
```
255+
resource "databricks_resource" "this" {
256+
...
257+
timeouts {
258+
create = "1h"
259+
update = "1h"
260+
delete = "1h"
261+
}
262+
}
263+
```
264+
You can request this feature for a specific resource by opening a GitHub issue. Please include the resource name and debug logs from the failed operation.
265+
266+
2. The **HTTP client timeout** controls how long the underlying SDK's HTTP client waits for a response for a single API call. This is controlled with `http_timeout_seconds` in the provider configuration. If this timeout is exceeded, users see a message like `request timed out after 1m0s of inactivity`. Users can increase this timeout as needed, and it will apply to all API requests made by the TF provider.
267+
```
268+
provider "databricks" {
269+
...
270+
http_timeout_seconds = 120
271+
}
272+
```
273+
3. The **API proxy timeout** is a server-side timeout that controls how long to wait for backend service to handle an API request. This timeout is configured by each API team at Databricks for their API endpoints. If this timeout is exceeded, users see a message like `The service at ... is taking too long to process your request. Please try again later or try a faster operation.`. Users cannot modify this timeout: it is configured by a Databricks team responsible for the backend service. If users see this error, they should reach out to Databricks support to investigate the issue.

0 commit comments

Comments
 (0)