Fixed locally and verified in browser from the petsitter dashboard. Root cause: dashboard decline flow sent reason but omitted declineReason, so the /api/bookings/:id mutation was rejected. Verification: declining the dog-walking request from the dashboard succeeded. The dashboard summary changed from 5 requests to 4, and the visible Emma (Dog Walking) card disappeared from the pending requests list. Screenshots: Before: /api/support/attachments/support-attachments/qa-issues/180/1773138553-dashboard-before-fix-verification.png After: /api/support/attachments/support-attachments/qa-issues/180/1773138553-dashboard-after-fix-verification.png
Standalone QA Hub
Issue #63
/at/petsitter/dashboard ยท 2026-03-10 10:29:35
completed
critical
Screenshot
Stored at legacy-import/issues/180/1773138553-dashboard-after-fix-verification.png
Metadata
Selector candidates
[
{
"matches": 1,
"score": 76,
"selector": "div.bg-white.rounded-xl.shadow-md",
"strategy": "class"
},
{
"matches": 1,
"score": 74,
"selector": "#action-center \u003e div:nth-of-type(1)",
"strategy": "scoped-parent-id"
},
{
"matches": 219,
"score": 60,
"selector": "div:nth-of-type(1)",
"strategy": "nth-of-type"
},
{
"matches": 2,
"score": 58,
"selector": "#action-center \u003e div \u003e div:nth-of-type(1)",
"strategy": "ancestor-path"
}
]
Target fingerprint
{
"ancestorPath": [
"#action-center",
"div"
],
"ariaLabel": null,
"className": "bg-white rounded-xl shadow-md border-2 border-[#7FBCE6] p-6",
"href": null,
"id": null,
"name": null,
"role": null,
"tagName": "div",
"textSample": "Pending Requests (Requires decision) 1 total MAE (Pet Boarding) Apr 9 - Apr 10, 2026 9d left Accept Decline Keeping your"
}
Secondary signal
{
"hasFiberInstance": true,
"reactComponentStack": [
"div",
"section",
"eC",
"Content",
"o",
"eV",
"x",
"c",
"f",
"T",
"E",
"j"
],
"reactOwnerStack": [],
"source": "react-fiber"
}
Layout evidence
bbox:
{
"bottom": 957,
"height": 338,
"left": 504,
"right": 1108,
"top": 619,
"width": 604,
"x": 504,
"y": 619
}
viewport:
{
"height": 1120,
"width": 1920
}
scroll:
{
"x": 0,
"y": 0
}
screenshotMarks:
[]
DOM excerpt
<div class="bg-white rounded-xl shadow-md border-2 border-[#7FBCE6] p-6"><div class="flex items-center justify-between mb-5"><div class="flex items-center"><h3 class="text-lg font-bold text-gray-900">Pending Requests</h3><span class="ml-2 text-xs text-gray-500 font-medium">(Requires decision)</span></div><span class="bg-red-500 text-white text-xs font-bold px-3 py-1.5 rounded-full">1 total</span></div><div class="space-y-4"><div class="border-l-4 rounded-lg p-4 shadow-sm hover:shadow-lg hover:scale-[1.01] transition-all duration-200 cursor-pointer group border-l-[#7FBCE6] bg-blue-50"><div class="flex items-start justify-between mb-3"><div class="flex items-start"><div class="w-10 h-10 bg-white rounded-full flex items-center justify-center shadow-sm mr-3 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-5 h-5 text-[#7FBCE6]" aria-hidden="true" data-sentry-element="Calendar" data-sentry-component="renderRequestIcon" data-sentry-source-file="PetsitterDashboardV2Desktop.tsx"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg></div><div><h4 class="font-bold text-gray-900 text-base">MAE (Pet Boarding)</h4><p class="text-sm text-gray-600 mt-1 flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-3.5 h-3.5 mr-1" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>Apr 9 - Apr 10, 2026</p></div></div><span class="text-xs font-bold text-white bg-[#7FBCE6] px-2.5 py-1.5 rounded-lg flex items-center gap-1 shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>9d left</span></div><div class="flex space-x-3 mt-4 mb-2"><button type="button" class="flex-1 px-4 py-3 bg-[#7FBCE6] text-white rounded-lg text-sm font-bold hover:bg-[#5FA5D1] shadow-md hover:shadow-lg transition-all disabled:opacity-60 disabled:cursor-not-allowed">Accept</button><button type="button" class="flex-1 px-4 py-3 bg-white border border-gray-200 text-gray-600 rounded-lg text-sm font-semibold hover:bg-gray-50 transition-all disabled:opacity-60 disabled:cursor-not-allowed">Decline</button></div><p class="text-xs text-[#7FBCE6] text-center mb-2 font-medium">Keeping your calendar accurate helps you avoid cancellations and stay higher in search.</p><div class="text-center"><a class="text-sm text-gray-500 hover:text-gray-700 inline-flex items-center" href="/at/petsitter/bookings/133022">View details<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-1 w-3 h-3" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></div><div class="mt-4 text-center"><a class="text-sm text-[#7FBCE6] hover:text-[#5FA5D1] font-medium" data-sentry-element="Link" data-sentry-source-file="PetsitterDashboardV2Desktop.tsx" href="/at/petsitter/bookings">View all requests</a></div></div>
Thread
qa-user
2026-03-10 10:29:35
qa-user
2026-03-10 10:41:37
Before verification screenshot: pending requests count at 5 before declining from dashboard.
dashboard-before-fix-verification.png
qa-user
2026-03-10 10:41:37
After verification screenshot: pending requests count at 4 after successful decline from dashboard.
dashboard-after-fix-verification.png