chore: enable verbose error logging on experiment calculations to reveal silent production errors

This commit is contained in:
Christian Vidal Wolf
2026-02-21 21:56:35 +01:00
parent 9259129f95
commit 58cc863748
3 changed files with 23 additions and 10 deletions
+1
View File
@@ -85,6 +85,7 @@ export default async function handler(req: VercelRequest, res: VercelResponse) {
if (req.method === 'PUT') { if (req.method === 'PUT') {
const { id } = req.query; const { id } = req.query;
const updates = req.body; const updates = req.body;
console.log('Update payload for id', id, ':', updates);
const { data, error } = await supabase const { data, error } = await supabase
.from('experiments') .from('experiments')
+3
View File
@@ -55,9 +55,12 @@ const ExperimentDetail: React.FC<ExperimentDetailProps> = ({ experimentId, onClo
setLoading(true); setLoading(true);
try { try {
const perf = await calculateExperimentPerformance(experiment, salesData); const perf = await calculateExperimentPerformance(experiment, salesData);
console.log('Calculation yielded performance delta payload:', perf);
const updated = await updateExperiment(experiment.id, perf); const updated = await updateExperiment(experiment.id, perf);
console.log('Update return from backend:', updated);
setExperiment(updated); setExperiment(updated);
} catch (e: any) { } catch (e: any) {
console.error('Full calculation error:', e);
alert(`Error calculating results: ${e.message}`); alert(`Error calculating results: ${e.message}`);
} finally { } finally {
setLoading(false); setLoading(false);
+11 -2
View File
@@ -59,6 +59,7 @@ export const updateExperiment = async (
id: string, id: string,
updates: Partial<Experiment> updates: Partial<Experiment>
): Promise<Experiment> => { ): Promise<Experiment> => {
try {
const response = await fetch(`${API_BASE}?id=${id}`, { const response = await fetch(`${API_BASE}?id=${id}`, {
method: 'PUT', method: 'PUT',
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
@@ -66,11 +67,19 @@ export const updateExperiment = async (
}); });
if (!response.ok) { if (!response.ok) {
const error = await response.json(); let errText = await response.text();
throw new Error(error.error || 'Failed to update experiment'); try {
const errJson = JSON.parse(errText);
errText = errJson.error || errText;
} catch (e) { }
throw new Error(errText);
} }
return response.json(); return response.json();
} catch (err: any) {
console.error('API Error in updateExperiment:', err);
throw err;
}
}; };
export const deleteExperiment = async (id: string): Promise<void> => { export const deleteExperiment = async (id: string): Promise<void> => {