Commit f8e7e15
authored
fix(cache): handle string content in is_cached_message (#17853)
Fixes #17821
The `is_cached_message` function crashed with TypeError when message
content was a string instead of a list of content blocks.
Changes:
- Add explicit `isinstance(content, list)` check before iteration
- Add `isinstance(content_item, dict)` check inside loop to skip non-dict items
- Use `.get()` for safer nested dict access
- Follow same pattern as `extract_ttl_from_cached_messages` (same module)
Tests:
- Add TestIsCachedMessage class with 9 test cases covering:
- String content (the reported bug)
- None content
- Missing content key
- Empty list content
- List with/without cache_control
- Mixed content types (strings + dicts)
- Wrong cache_control type1 parent 78012ad commit f8e7e15
2 files changed
+124
-18
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
793 | 793 | | |
794 | 794 | | |
795 | 795 | | |
796 | | - | |
797 | | - | |
798 | | - | |
799 | | - | |
| 796 | + | |
| 797 | + | |
800 | 798 | | |
801 | 799 | | |
802 | 800 | | |
| |||
2903 | 2901 | | |
2904 | 2902 | | |
2905 | 2903 | | |
2906 | | - | |
| 2904 | + | |
2907 | 2905 | | |
2908 | 2906 | | |
2909 | 2907 | | |
| |||
5063 | 5061 | | |
5064 | 5062 | | |
5065 | 5063 | | |
5066 | | - | |
| 5064 | + | |
| 5065 | + | |
| 5066 | + | |
5067 | 5067 | | |
5068 | 5068 | | |
5069 | 5069 | | |
| |||
6719 | 6719 | | |
6720 | 6720 | | |
6721 | 6721 | | |
6722 | | - | |
| 6722 | + | |
| 6723 | + | |
| 6724 | + | |
6723 | 6725 | | |
6724 | 6726 | | |
6725 | 6727 | | |
| |||
6808 | 6810 | | |
6809 | 6811 | | |
6810 | 6812 | | |
6811 | | - | |
| 6813 | + | |
| 6814 | + | |
| 6815 | + | |
| 6816 | + | |
| 6817 | + | |
6812 | 6818 | | |
6813 | 6819 | | |
6814 | | - | |
| 6820 | + | |
| 6821 | + | |
| 6822 | + | |
| 6823 | + | |
| 6824 | + | |
6815 | 6825 | | |
6816 | | - | |
6817 | | - | |
6818 | | - | |
| 6826 | + | |
| 6827 | + | |
| 6828 | + | |
6819 | 6829 | | |
6820 | 6830 | | |
6821 | 6831 | | |
| |||
7475 | 7485 | | |
7476 | 7486 | | |
7477 | 7487 | | |
7478 | | - | |
7479 | | - | |
| 7488 | + | |
| 7489 | + | |
| 7490 | + | |
| 7491 | + | |
| 7492 | + | |
7480 | 7493 | | |
7481 | 7494 | | |
7482 | 7495 | | |
| |||
7495 | 7508 | | |
7496 | 7509 | | |
7497 | 7510 | | |
7498 | | - | |
| 7511 | + | |
7499 | 7512 | | |
7500 | 7513 | | |
7501 | | - | |
| 7514 | + | |
7502 | 7515 | | |
7503 | 7516 | | |
7504 | 7517 | | |
| |||
8197 | 8210 | | |
8198 | 8211 | | |
8199 | 8212 | | |
8200 | | - | |
| 8213 | + | |
| 8214 | + | |
| 8215 | + | |
8201 | 8216 | | |
8202 | 8217 | | |
8203 | 8218 | | |
| |||
8231 | 8246 | | |
8232 | 8247 | | |
8233 | 8248 | | |
| 8249 | + | |
8234 | 8250 | | |
8235 | 8251 | | |
8236 | 8252 | | |
| |||
8247 | 8263 | | |
8248 | 8264 | | |
8249 | 8265 | | |
| 8266 | + | |
8250 | 8267 | | |
8251 | 8268 | | |
8252 | 8269 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
846 | 847 | | |
847 | 848 | | |
848 | 849 | | |
| 850 | + | |
849 | 851 | | |
850 | 852 | | |
851 | 853 | | |
| |||
854 | 856 | | |
855 | 857 | | |
856 | 858 | | |
857 | | - | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
858 | 862 | | |
859 | 863 | | |
| 864 | + | |
860 | 865 | | |
861 | 866 | | |
862 | 867 | | |
| |||
2513 | 2518 | | |
2514 | 2519 | | |
2515 | 2520 | | |
| 2521 | + | |
| 2522 | + | |
| 2523 | + | |
| 2524 | + | |
| 2525 | + | |
| 2526 | + | |
| 2527 | + | |
| 2528 | + | |
| 2529 | + | |
| 2530 | + | |
| 2531 | + | |
| 2532 | + | |
| 2533 | + | |
| 2534 | + | |
| 2535 | + | |
| 2536 | + | |
| 2537 | + | |
| 2538 | + | |
| 2539 | + | |
| 2540 | + | |
| 2541 | + | |
| 2542 | + | |
| 2543 | + | |
| 2544 | + | |
| 2545 | + | |
| 2546 | + | |
| 2547 | + | |
| 2548 | + | |
| 2549 | + | |
| 2550 | + | |
| 2551 | + | |
| 2552 | + | |
| 2553 | + | |
| 2554 | + | |
| 2555 | + | |
| 2556 | + | |
| 2557 | + | |
| 2558 | + | |
| 2559 | + | |
| 2560 | + | |
| 2561 | + | |
| 2562 | + | |
| 2563 | + | |
| 2564 | + | |
| 2565 | + | |
| 2566 | + | |
| 2567 | + | |
| 2568 | + | |
| 2569 | + | |
| 2570 | + | |
| 2571 | + | |
| 2572 | + | |
| 2573 | + | |
| 2574 | + | |
| 2575 | + | |
| 2576 | + | |
| 2577 | + | |
| 2578 | + | |
| 2579 | + | |
| 2580 | + | |
| 2581 | + | |
| 2582 | + | |
| 2583 | + | |
| 2584 | + | |
| 2585 | + | |
| 2586 | + | |
| 2587 | + | |
| 2588 | + | |
| 2589 | + | |
| 2590 | + | |
| 2591 | + | |
| 2592 | + | |
| 2593 | + | |
| 2594 | + | |
| 2595 | + | |
| 2596 | + | |
| 2597 | + | |
| 2598 | + | |
| 2599 | + | |
| 2600 | + | |
| 2601 | + | |
| 2602 | + | |
| 2603 | + | |
| 2604 | + | |
0 commit comments