Commit a967d2f
authored
fix(polling): throw TimeoutError instead of bare Error on timeout (#503)
Replace the generic `new Error(timeoutMessage)` in `poll()` with a
structured
`TimeoutError` (extends `CliError`) that carries an optional `hint`
field. This gives
the CLI error handler richer context to display actionable suggestions
when a polling
operation times out.
## Changes
- **`src/lib/errors.ts`** — Add `TimeoutError` class with optional
`hint` and `format()` override
- **`src/lib/polling.ts`** — Throw `TimeoutError` instead of bare
`Error`; add `timeoutHint` option to `PollOptions`
- **`src/lib/sentry-urls.ts`** — Add `buildIssueUrl()` helper (SaaS +
self-hosted)
- **`src/commands/issue/utils.ts`** — `pollAutofixState` passes a hint
with the issue URL and retry command
- **`test/lib/polling.property.test.ts`** — Assert `TimeoutError` type
and verify hint propagation
## Context
Addresses [CLI-J0](https://sentry.sentry.io/issues/7350074690/) — a user
hit the
6-minute Seer analysis timeout via `sentry issue explain`. The timeout
itself is
expected (the backend can be slow), but the bare `Error` gave no
guidance on what
to do next. Now the user sees:
```
Error: Operation timed out after 6 minutes. Try again or check the issue in Sentry web UI.
The analysis may still complete in the background.
View in Sentry: https://my-org.sentry.io/issues/12345/
Or retry: sentry issue explain 12345
```1 parent a266720 commit a967d2f
File tree
6 files changed
+98
-9
lines changed- src
- commands/issue
- lib
- test/lib
6 files changed
+98
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
250 | 253 | | |
251 | 254 | | |
252 | 255 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| |||
624 | 625 | | |
625 | 626 | | |
626 | 627 | | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
627 | 631 | | |
628 | 632 | | |
629 | 633 | | |
| |||
729 | 733 | | |
730 | 734 | | |
731 | 735 | | |
| 736 | + | |
732 | 737 | | |
733 | 738 | | |
734 | 739 | | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
735 | 747 | | |
736 | 748 | | |
737 | 749 | | |
| |||
740 | 752 | | |
741 | 753 | | |
742 | 754 | | |
| 755 | + | |
743 | 756 | | |
744 | 757 | | |
745 | 758 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
436 | 463 | | |
437 | 464 | | |
438 | 465 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| 41 | + | |
| 42 | + | |
40 | 43 | | |
41 | 44 | | |
42 | 45 | | |
| |||
51 | 54 | | |
52 | 55 | | |
53 | 56 | | |
54 | | - | |
| 57 | + | |
55 | 58 | | |
56 | 59 | | |
57 | 60 | | |
| |||
74 | 77 | | |
75 | 78 | | |
76 | 79 | | |
| 80 | + | |
77 | 81 | | |
78 | 82 | | |
79 | 83 | | |
| |||
98 | 102 | | |
99 | 103 | | |
100 | 104 | | |
101 | | - | |
| 105 | + | |
102 | 106 | | |
103 | 107 | | |
104 | 108 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
91 | 105 | | |
92 | 106 | | |
93 | 107 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
73 | | - | |
| 74 | + | |
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
79 | | - | |
80 | | - | |
| 80 | + | |
| 81 | + | |
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
84 | 85 | | |
85 | 86 | | |
86 | 87 | | |
87 | 88 | | |
88 | | - | |
89 | | - | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
90 | 96 | | |
91 | 97 | | |
92 | 98 | | |
93 | 99 | | |
94 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
95 | 123 | | |
96 | 124 | | |
97 | 125 | | |
| |||
200 | 228 | | |
201 | 229 | | |
202 | 230 | | |
203 | | - | |
| 231 | + | |
204 | 232 | | |
205 | 233 | | |
206 | 234 | | |
| |||
210 | 238 | | |
211 | 239 | | |
212 | 240 | | |
213 | | - | |
| 241 | + | |
214 | 242 | | |
215 | 243 | | |
216 | 244 | | |
| |||
0 commit comments