Skip to content

Commit e997595

Browse files
waleedlatif1claude
andcommitted
fix(grafana): surface invalid JSON for annotations/labels/data on alert rules
Match the behavior of other JSON params (data, notificationSettings, record): return a descriptive error instead of silently falling back to {} (create) or keeping the existing value (update). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent da17194 commit e997595

2 files changed

Lines changed: 17 additions & 5 deletions

File tree

apps/sim/tools/grafana/create_alert_rule.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,15 +185,15 @@ export const createAlertRuleTool: ToolConfig<
185185
try {
186186
body.annotations = JSON.parse(params.annotations)
187187
} catch {
188-
body.annotations = {}
188+
throw new Error('Invalid JSON for annotations parameter')
189189
}
190190
}
191191

192192
if (params.labels) {
193193
try {
194194
body.labels = JSON.parse(params.labels)
195195
} catch {
196-
body.labels = {}
196+
throw new Error('Invalid JSON for labels parameter')
197197
}
198198
}
199199

apps/sim/tools/grafana/update_alert_rule.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,11 @@ export const updateAlertRuleTool: ToolConfig<GrafanaUpdateAlertRuleParams, ToolR
219219
try {
220220
updatedRule.data = JSON.parse(params.data)
221221
} catch {
222-
// Keep existing data if parse fails
222+
return {
223+
success: false,
224+
output: {},
225+
error: 'Invalid JSON for data parameter',
226+
}
223227
}
224228
}
225229

@@ -230,7 +234,11 @@ export const updateAlertRuleTool: ToolConfig<GrafanaUpdateAlertRuleParams, ToolR
230234
...JSON.parse(params.annotations),
231235
}
232236
} catch {
233-
// Keep existing annotations if parse fails
237+
return {
238+
success: false,
239+
output: {},
240+
error: 'Invalid JSON for annotations parameter',
241+
}
234242
}
235243
}
236244

@@ -241,7 +249,11 @@ export const updateAlertRuleTool: ToolConfig<GrafanaUpdateAlertRuleParams, ToolR
241249
...JSON.parse(params.labels),
242250
}
243251
} catch {
244-
// Keep existing labels if parse fails
252+
return {
253+
success: false,
254+
output: {},
255+
error: 'Invalid JSON for labels parameter',
256+
}
245257
}
246258
}
247259

0 commit comments

Comments
 (0)