You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
it('infers selected-model-unavailable callbacks as action-required failures',async()=>{
538
+
consterrorMessage=
539
+
'prepareSession failed (400): {"error":{"message":"Selected model is not available for this cloud agent session","code":-32600,"data":{"code":"BAD_REQUEST","httpStatus":400,"path":"prepareSession"}}}';
it('infers model-not-allowed callbacks as action-required failures',async()=>{
593
+
consterrorMessage=
594
+
'prepareSession failed (400): {"error":{"message":"Not Found: The requested model is not allowed for your team.","code":-32600,"data":{"code":"BAD_REQUEST","httpStatus":400,"path":"prepareSession"}}}';
'Code Reviewer was disabled because the selected BYOK API key is invalid or has been revoked. Update the key or choose another model, then enable Code Reviewer again.',
62
63
gitlabDescription: 'BYOK API key needs attention for Code Reviewer',
63
64
},
65
+
selected_model_unavailable: {
66
+
title: 'Code Reviewer needs attention',
67
+
description:
68
+
'Code Reviewer was disabled because the selected model is not available for cloud agent sessions. Choose an available model, then enable Code Reviewer again.',
69
+
recoveryLabel: 'Update Code Reviewer settings',
70
+
emailReason: 'The selected model is not available for cloud agent sessions.',
71
+
checkTitle: 'Selected model unavailable',
72
+
checkSummary:
73
+
'Code Reviewer was disabled because the selected model is not available for cloud agent sessions. Choose an available model, then enable Code Reviewer again.',
74
+
gitlabDescription: 'Selected model unavailable for Code Reviewer',
'Although you appear to have the correct authorization credentials, the `acme` organization has an IP allow list enabled, and 192.0.2.1 is not permitted.'
40
41
)
41
42
).toBe('github_ip_allow_list');
43
+
44
+
expect(
45
+
classifyCodeReviewActionRequiredFailure(
46
+
'Selected model is not available for this cloud agent session'
47
+
)
48
+
).toBe('selected_model_unavailable');
49
+
50
+
expect(
51
+
classifyCodeReviewActionRequiredFailure(
52
+
'prepareSession failed (400): {"error":{"message":"Selected model is not available for this cloud agent session","code":-32600,"data":{"code":"BAD_REQUEST","httpStatus":400,"path":"prepareSession"}}}'
53
+
)
54
+
).toBe('selected_model_unavailable');
55
+
56
+
expect(
57
+
classifyCodeReviewActionRequiredFailure(
58
+
'Not Found: The requested model is not allowed for your team.'
59
+
)
60
+
).toBe('selected_model_unavailable');
61
+
62
+
expect(
63
+
classifyCodeReviewActionRequiredFailure(
64
+
'prepareSession failed (400): {"error":{"message":"Not Found: The requested model is not allowed for your team.","code":-32600,"data":{"code":"BAD_REQUEST","httpStatus":400,"path":"prepareSession"}}}'
65
+
)
66
+
).toBe('selected_model_unavailable');
42
67
});
43
68
44
69
it('does not classify unrelated auth, rate-limit, or BYOK quota failures',()=>{
* Pattern matching is ordered from most-specific to least-specific.
74
74
*/
75
75
consterrorCategoryExpr=sql<string>`CASE
76
-
WHEN ${cloud_agent_code_reviews.terminal_reason} IN ('github_installation_required', 'github_ip_allow_list', 'byok_invalid_key') THEN 'Action Required'
76
+
WHEN ${cloud_agent_code_reviews.terminal_reason} IN ('github_installation_required', 'github_ip_allow_list', 'byok_invalid_key', 'selected_model_unavailable') THEN 'Action Required'
77
77
WHEN ${cloud_agent_code_reviews.error_message} LIKE '%rate limit%' OR ${cloud_agent_code_reviews.error_message} LIKE '%Rate limit%' OR ${cloud_agent_code_reviews.error_message} LIKE '%429%' THEN 'Rate Limited'
78
78
WHEN ${cloud_agent_code_reviews.error_message} LIKE '%timeout%' OR ${cloud_agent_code_reviews.error_message} LIKE '%Timeout%' OR ${cloud_agent_code_reviews.error_message} LIKE '%ETIMEDOUT%' OR ${cloud_agent_code_reviews.error_message} LIKE '%timed out%' THEN 'Timeout'
79
79
WHEN ${cloud_agent_code_reviews.error_message} LIKE '%context window%' OR ${cloud_agent_code_reviews.error_message} LIKE '%token limit%' OR ${cloud_agent_code_reviews.error_message} LIKE '%too large%' OR ${cloud_agent_code_reviews.error_message} LIKE '%maximum context length%' THEN 'Context Window Exceeded'
WHEN ${cloud_agent_code_review_attempts.terminal_reason} IN ('github_installation_required', 'github_ip_allow_list', 'byok_invalid_key') THEN 'Action Required'
90
+
WHEN ${cloud_agent_code_review_attempts.terminal_reason} IN ('github_installation_required', 'github_ip_allow_list', 'byok_invalid_key', 'selected_model_unavailable') THEN 'Action Required'
91
91
WHEN ${cloud_agent_code_review_attempts.error_message} LIKE '%rate limit%' OR ${cloud_agent_code_review_attempts.error_message} LIKE '%Rate limit%' OR ${cloud_agent_code_review_attempts.error_message} LIKE '%429%' THEN 'Rate Limited'
92
92
WHEN ${cloud_agent_code_review_attempts.error_message} LIKE '%timeout%' OR ${cloud_agent_code_review_attempts.error_message} LIKE '%Timeout%' OR ${cloud_agent_code_review_attempts.error_message} LIKE '%ETIMEDOUT%' OR ${cloud_agent_code_review_attempts.error_message} LIKE '%timed out%' THEN 'Timeout'
93
93
WHEN ${cloud_agent_code_review_attempts.error_message} LIKE '%context window%' OR ${cloud_agent_code_review_attempts.error_message} LIKE '%token limit%' OR ${cloud_agent_code_review_attempts.error_message} LIKE '%too large%' OR ${cloud_agent_code_review_attempts.error_message} LIKE '%maximum context length%' THEN 'Context Window Exceeded'
0 commit comments