Commit 3b6e96e
authored
fix: Send request queue write fields under the names the API declares (#1026)
`add_request` and `batch_add_requests` sent request fields snake_cased.
The API declares its write bodies with `additionalProperties: false`, so
it rejected the whole write with HTTP 400 — a request carrying
`user_data`, `no_retry`, `retry_count`, `loaded_url`, `error_messages`,
or `handled_at` could not be added at all. The identical dict passed to
`update_request` worked:
```python
add_request -> 400 {"uniqueKey": "k", "url": "...", "user_data": {...}, "no_retry": true}
update_request -> 200 {"uniqueKey": "k", "url": "...", "userData": {...}, "noRetry": true}
```
The client was using `RequestDraft` (the spec's response-only schema for
`unprocessedRequests`, which declares only
`id`/`unique_key`/`url`/`method` and leaves the rest to `extra='allow'`)
as its input model. The spec actually declares both add-request bodies
as `RequestWithoutId`, now correctly generated as its own model since
apify-docs#2774 fixed the spec bundler dropping its identity — no custom
postprocessing needed. Upstream spec fix
([apify-docs#2774](apify/apify-docs#2774)) is
closed.
Two things to know:
- **Validation narrows.** The newly declared fields are validated
instead of passed through, so `retry_count='abc'` or a naive
`handled_at` now raise `ValidationError` instead of a 400 from the API.
- **`update_request`'s timestamp format changes** (`fa77d88`):
`mode='json'` emits ISO 8601 where python mode emitted `2019-06-16
10:23:31.607000+00:00`. The API accepts both, so this is spec fidelity,
not a fix — its own commit, revertible alone.
Integration tests round-trip every field through both add paths against
the live API; they fail on master with `InvalidRequestError`.
*✍️ Drafted by Claude Code*1 parent f1d5a06 commit 3b6e96e
6 files changed
Lines changed: 518 additions & 88 deletions
File tree
- scripts
- src/apify_client
- _resource_clients
- tests
- integration
- unit
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
| |||
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
53 | | - | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
| 56 | + | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
71 | | - | |
| 72 | + | |
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
| |||
80 | 81 | | |
81 | 82 | | |
82 | 83 | | |
83 | | - | |
84 | | - | |
| 84 | + | |
| 85 | + | |
85 | 86 | | |
86 | 87 | | |
87 | 88 | | |
| |||
228 | 229 | | |
229 | 230 | | |
230 | 231 | | |
231 | | - | |
| 232 | + | |
232 | 233 | | |
233 | 234 | | |
234 | 235 | | |
| |||
238 | 239 | | |
239 | 240 | | |
240 | 241 | | |
241 | | - | |
| 242 | + | |
242 | 243 | | |
243 | 244 | | |
244 | 245 | | |
245 | 246 | | |
246 | 247 | | |
247 | 248 | | |
248 | | - | |
249 | | - | |
| 249 | + | |
| 250 | + | |
250 | 251 | | |
251 | 252 | | |
252 | 253 | | |
253 | 254 | | |
254 | 255 | | |
255 | 256 | | |
256 | | - | |
| 257 | + | |
257 | 258 | | |
258 | 259 | | |
259 | 260 | | |
| |||
321 | 322 | | |
322 | 323 | | |
323 | 324 | | |
324 | | - | |
| 325 | + | |
325 | 326 | | |
326 | 327 | | |
327 | 328 | | |
| |||
410 | 411 | | |
411 | 412 | | |
412 | 413 | | |
413 | | - | |
| 414 | + | |
414 | 415 | | |
415 | 416 | | |
416 | 417 | | |
| |||
423 | 424 | | |
424 | 425 | | |
425 | 426 | | |
426 | | - | |
| 427 | + | |
427 | 428 | | |
428 | 429 | | |
429 | 430 | | |
| |||
510 | 511 | | |
511 | 512 | | |
512 | 513 | | |
513 | | - | |
| 514 | + | |
514 | 515 | | |
515 | 516 | | |
516 | 517 | | |
| |||
761 | 762 | | |
762 | 763 | | |
763 | 764 | | |
764 | | - | |
| 765 | + | |
765 | 766 | | |
766 | 767 | | |
767 | 768 | | |
| |||
771 | 772 | | |
772 | 773 | | |
773 | 774 | | |
774 | | - | |
| 775 | + | |
775 | 776 | | |
776 | 777 | | |
777 | 778 | | |
778 | 779 | | |
779 | 780 | | |
780 | 781 | | |
781 | | - | |
782 | | - | |
| 782 | + | |
| 783 | + | |
783 | 784 | | |
784 | 785 | | |
785 | 786 | | |
786 | 787 | | |
787 | 788 | | |
788 | 789 | | |
789 | | - | |
| 790 | + | |
790 | 791 | | |
791 | 792 | | |
792 | 793 | | |
| |||
852 | 853 | | |
853 | 854 | | |
854 | 855 | | |
855 | | - | |
| 856 | + | |
856 | 857 | | |
857 | 858 | | |
858 | 859 | | |
| |||
989 | 990 | | |
990 | 991 | | |
991 | 992 | | |
992 | | - | |
| 993 | + | |
993 | 994 | | |
994 | 995 | | |
995 | 996 | | |
| |||
1002 | 1003 | | |
1003 | 1004 | | |
1004 | 1005 | | |
1005 | | - | |
| 1006 | + | |
1006 | 1007 | | |
1007 | 1008 | | |
1008 | 1009 | | |
| |||
1094 | 1095 | | |
1095 | 1096 | | |
1096 | 1097 | | |
1097 | | - | |
| 1098 | + | |
1098 | 1099 | | |
1099 | 1100 | | |
1100 | 1101 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | 114 | | |
153 | 115 | | |
154 | 116 | | |
| |||
221 | 183 | | |
222 | 184 | | |
223 | 185 | | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
224 | 196 | | |
225 | 197 | | |
226 | 198 | | |
| |||
0 commit comments