Spaces:
Sleeping
Sleeping
fix: add 60s timeout to Cloudinary uploads with Supabase fallback for large images
Browse files
docs/devlogs/browser/browserconsole.txt
CHANGED
|
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Download the React DevTools for a better development experience: https://reactjs.org/link/react-devtools
|
| 2 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/me
|
| 3 |
+
β οΈ React Router Future Flag Warning: React Router will begin wrapping state updates in `React.startTransition` in v7. You can use the `v7_startTransition` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_starttransition.
|
| 4 |
+
warnOnce @ react-router-dom.js?v=02c37274:4393
|
| 5 |
+
β οΈ React Router Future Flag Warning: Relative route resolution within Splat routes is changing in v7. You can use the `v7_relativeSplatPath` future flag to opt-in early. For more information, see https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath.
|
| 6 |
+
warnOnce @ react-router-dom.js?v=02c37274:4393
|
| 7 |
+
WebSocket connection to 'ws://localhost:8080/?token=5ZvTJdG43mEu' failed:
|
| 8 |
+
setupWebSocket @ client:536
|
| 9 |
+
WebSocket connection to 'ws://localhost:8080/?token=5ZvTJdG43mEu' failed:
|
| 10 |
+
setupWebSocket @ client:536
|
| 11 |
+
[vite] failed to connect to websocket.
|
| 12 |
+
your current setup:
|
| 13 |
+
(browser) localhost:8080/ <--[HTTP]--> localhost:8080/ (server)
|
| 14 |
+
(browser) localhost:8080/ <--[WebSocket (failing)]--> localhost:8080/ (server)
|
| 15 |
+
Check out your Vite / network configuration and https://vite.dev/config/server-options.html#server-hmr .
|
| 16 |
+
(anonymous) @ client:512
|
| 17 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/auth/me β 200 (6.00s)
|
| 18 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/me/preferences
|
| 19 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/auth/me/preferences β 200 (1.52s)
|
| 20 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/dashboard
|
| 21 |
+
βΉοΈ [11:18:04] [COMPONENT] ProjectDashboardPage: Project dashboard loaded Object
|
| 22 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/dashboard β 200 (8.25s)
|
| 23 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/stats?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a
|
| 24 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/tickets/stats?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a β 200 (786ms)
|
| 25 |
+
βΉοΈ [11:18:18] [AUTH] Logout initiated
|
| 26 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/logout
|
| 27 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/auth/logout β 200 (4.23s)
|
| 28 |
+
βΉοΈ [11:18:23] [AUTH] Logout successful on server
|
| 29 |
+
βΉοΈ [11:18:23] [AUTH] Tokens cleared, user logged out
|
| 30 |
+
βΉοΈ [11:18:26] [AUTH] Login attempt Object
|
| 31 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/login
|
| 32 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/auth/login β 200 (652ms)
|
| 33 |
+
βΉοΈ [11:18:27] [AUTH] Login successful, tokens stored Object
|
| 34 |
+
βΉοΈ [11:18:27] [AUTH] User logged in successfully Object
|
| 35 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/auth/me
|
| 36 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/auth/me β 200 (880ms)
|
| 37 |
+
βΉοΈ [11:18:29] [COMPONENT] Dashboard component selected Object
|
| 38 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/analytics/user/overview?limit=50
|
| 39 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/analytics/user/overview?limit=50 β 200 (3.06s)
|
| 40 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects?page=1&per_page=100&status=active
|
| 41 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/projects?page=1&per_page=100&status=active β 200 (542ms)
|
| 42 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail
|
| 43 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail β 200 (1.09s)
|
| 44 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions/24510a5a-13a6-4334-9055-b4d476aa9e0a
|
| 45 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions/24510a5a-13a6-4334-9055-b4d476aa9e0a β 200 (879ms)
|
| 46 |
+
Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
|
| 47 |
+
(anonymous) @ chunk-3WZOQKYN.js?v=02c37274:340
|
| 48 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-expenses
|
| 49 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-expenses β 201 (2.33s)
|
| 50 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail
|
| 51 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail β 200 (336ms)
|
| 52 |
+
Warning: Missing `Description` or `aria-describedby={undefined}` for {DialogContent}.
|
| 53 |
+
(anonymous) @ chunk-3WZOQKYN.js?v=02c37274:340
|
| 54 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-expenses
|
| 55 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-expenses β 201 (843ms)
|
| 56 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail
|
| 57 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail β 200 (342ms)
|
| 58 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/start-journey
|
| 59 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/start-journey β 200 (718ms)
|
| 60 |
+
%cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail
|
| 61 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 62 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.26s)
|
| 63 |
+
GET https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail β 200 (1.47s)
|
| 64 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 65 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (309ms)
|
| 66 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 67 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (503ms)
|
| 68 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 69 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (346ms)
|
| 70 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 71 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.13s)
|
| 72 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 73 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.22s)
|
| 74 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 75 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (850ms)
|
| 76 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 77 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (343ms)
|
| 78 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 79 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.09s)
|
| 80 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 81 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.86s)
|
| 82 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 83 |
+
POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (432ms)
|
| 84 |
+
%cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 85 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (712ms)
|
| 86 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 87 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.16s)
|
| 88 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 89 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.34s)
|
| 90 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 91 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (533ms)
|
| 92 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 93 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (2.06s)
|
| 94 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 95 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.10s)
|
| 96 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 97 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.52s)
|
| 98 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 99 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (660ms)
|
| 100 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 101 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (530ms)
|
| 102 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 103 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.01s)
|
| 104 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 105 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (872ms)
|
| 106 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 107 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (931ms)
|
| 108 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 109 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (1.01s)
|
| 110 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 111 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/arrived
|
| 112 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 200 (362ms)
|
| 113 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/arrived β 200 (669ms)
|
| 114 |
+
core.ts:169 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail
|
| 115 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location
|
| 116 |
+
core.ts:169 GET https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail β 200 (637ms)
|
| 117 |
+
api-client.ts:124 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location 400 (Bad Request)
|
| 118 |
+
request @ api-client.ts:124
|
| 119 |
+
post @ api-client.ts:213
|
| 120 |
+
updateLocation @ tickets.service.ts:411
|
| 121 |
+
(anonymous) @ LocationTrackerContext.tsx:79
|
| 122 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location β 400 (976ms)
|
| 123 |
+
LocationTrackerContext.tsx:90 [LocationTracker] Failed to stream location: APIError: Already arrived. No more location updates needed.
|
| 124 |
+
at APIClient.request (api-client.ts:158:15)
|
| 125 |
+
at async updateLocation (tickets.service.ts:411:5)
|
| 126 |
+
at async LocationTrackerContext.tsx:79:25
|
| 127 |
+
(anonymous) @ LocationTrackerContext.tsx:90
|
| 128 |
+
core.ts:169 %cGET%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-checklist
|
| 129 |
+
core.ts:169 GET https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-checklist β 200 (2.10s)
|
| 130 |
+
image-compression.ts:50 Image compressed: 56687 -> 46590 bytes
|
| 131 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos
|
| 132 |
+
image-compression.ts:50 Image compressed: 299548 -> 245006 bytes
|
| 133 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos
|
| 134 |
+
image-compression.ts:50 Image compressed: 211885 -> 205136 bytes
|
| 135 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos
|
| 136 |
+
image-compression.ts:50 Image compressed: 2073692 -> 271804 bytes
|
| 137 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos
|
| 138 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos β 200 (5.15s)
|
| 139 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-data
|
| 140 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos β 408 (30.77s)
|
| 141 |
+
TicketCompletionWizard.tsx:184 Background upload error APIError: Request timeout
|
| 142 |
+
at APIClient.request (api-client.ts:173:30)
|
| 143 |
+
at async uploadCompletionPhoto (tickets.service.ts:445:22)
|
| 144 |
+
at async Promise.all (index 2)
|
| 145 |
+
(anonymous) @ TicketCompletionWizard.tsx:184
|
| 146 |
+
Promise.catch
|
| 147 |
+
handleStep1Next @ TicketCompletionWizard.tsx:183
|
| 148 |
+
handleNext @ TicketCompletionWizard.tsx:275
|
| 149 |
+
callCallback2 @ chunk-276SZO74.js?v=02c37274:3674
|
| 150 |
+
invokeGuardedCallbackDev @ chunk-276SZO74.js?v=02c37274:3699
|
| 151 |
+
invokeGuardedCallback @ chunk-276SZO74.js?v=02c37274:3733
|
| 152 |
+
invokeGuardedCallbackAndCatchFirstError @ chunk-276SZO74.js?v=02c37274:3736
|
| 153 |
+
executeDispatch @ chunk-276SZO74.js?v=02c37274:7014
|
| 154 |
+
processDispatchQueueItemsInOrder @ chunk-276SZO74.js?v=02c37274:7034
|
| 155 |
+
processDispatchQueue @ chunk-276SZO74.js?v=02c37274:7043
|
| 156 |
+
dispatchEventsForPlugins @ chunk-276SZO74.js?v=02c37274:7051
|
| 157 |
+
(anonymous) @ chunk-276SZO74.js?v=02c37274:7174
|
| 158 |
+
batchedUpdates$1 @ chunk-276SZO74.js?v=02c37274:18913
|
| 159 |
+
batchedUpdates @ chunk-276SZO74.js?v=02c37274:3579
|
| 160 |
+
dispatchEventForPluginEventSystem @ chunk-276SZO74.js?v=02c37274:7173
|
| 161 |
+
dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay @ chunk-276SZO74.js?v=02c37274:5478
|
| 162 |
+
dispatchEvent @ chunk-276SZO74.js?v=02c37274:5472
|
| 163 |
+
dispatchDiscreteEvent @ chunk-276SZO74.js?v=02c37274:5449
|
| 164 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos β 408 (30.73s)
|
| 165 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos β 408 (30.67s)
|
| 166 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-data β 408 (30.01s)
|
| 167 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-data
|
| 168 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-data β 200 (345ms)
|
| 169 |
+
image-compression.ts:50 Image compressed: 211885 -> 205136 bytes
|
| 170 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos
|
| 171 |
+
image-compression.ts:50 Image compressed: 299548 -> 245006 bytes
|
| 172 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos
|
| 173 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-data
|
| 174 |
+
image-compression.ts:50 Image compressed: 5576851 -> 189208 bytes
|
| 175 |
+
core.ts:169 %cPOST%c https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos
|
| 176 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-data β 200 (16.73s)
|
| 177 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos β 408 (30.00s)
|
| 178 |
+
TicketCompletionWizard.tsx:184 Background upload error APIError: Request timeout
|
| 179 |
+
at APIClient.request (api-client.ts:173:30)
|
| 180 |
+
at async uploadCompletionPhoto (tickets.service.ts:445:22)
|
| 181 |
+
at async Promise.all (index 0)
|
| 182 |
+
(anonymous) @ TicketCompletionWizard.tsx:184
|
| 183 |
+
Promise.catch
|
| 184 |
+
handleStep1Next @ TicketCompletionWizard.tsx:183
|
| 185 |
+
handleNext @ TicketCompletionWizard.tsx:275
|
| 186 |
+
callCallback2 @ chunk-276SZO74.js?v=02c37274:3674
|
| 187 |
+
invokeGuardedCallbackDev @ chunk-276SZO74.js?v=02c37274:3699
|
| 188 |
+
invokeGuardedCallback @ chunk-276SZO74.js?v=02c37274:3733
|
| 189 |
+
invokeGuardedCallbackAndCatchFirstError @ chunk-276SZO74.js?v=02c37274:3736
|
| 190 |
+
executeDispatch @ chunk-276SZO74.js?v=02c37274:7014
|
| 191 |
+
processDispatchQueueItemsInOrder @ chunk-276SZO74.js?v=02c37274:7034
|
| 192 |
+
processDispatchQueue @ chunk-276SZO74.js?v=02c37274:7043
|
| 193 |
+
dispatchEventsForPlugins @ chunk-276SZO74.js?v=02c37274:7051
|
| 194 |
+
(anonymous) @ chunk-276SZO74.js?v=02c37274:7174
|
| 195 |
+
batchedUpdates$1 @ chunk-276SZO74.js?v=02c37274:18913
|
| 196 |
+
batchedUpdates @ chunk-276SZO74.js?v=02c37274:3579
|
| 197 |
+
dispatchEventForPluginEventSystem @ chunk-276SZO74.js?v=02c37274:7173
|
| 198 |
+
dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay @ chunk-276SZO74.js?v=02c37274:5478
|
| 199 |
+
dispatchEvent @ chunk-276SZO74.js?v=02c37274:5472
|
| 200 |
+
dispatchDiscreteEvent @ chunk-276SZO74.js?v=02c37274:5449
|
| 201 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos β 408 (30.01s)
|
| 202 |
+
core.ts:169 POST https://kamau1-swiftops-backend.hf.space/api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos β 408 (30.02s)
|
docs/devlogs/db/logs.sql
CHANGED
|
@@ -1,6 +1 @@
|
|
| 1 |
-
INSERT INTO "public"."timesheets" ("id", "user_id", "project_id", "work_date", "status", "check_in_time", "check_out_time", "hours_worked", "leave_reason", "leave_approved_by_user_id", "notes", "additional_metadata", "created_at", "updated_at", "deleted_at", "tickets_assigned", "tickets_completed", "tickets_rescheduled", "tickets_cancelled", "tickets_rejected", "is_payroll_generated", "payroll_id", "total_expenses", "approved_expenses", "pending_expenses", "rejected_expenses", "expense_claims_count", "inventory_issued_count", "inventory_issued_value", "inventory_installed_count", "inventory_consumed_count", "inventory_returned_count", "inventory_returned_value", "inventory_lost_count", "inventory_damaged_count", "inventory_loss_value", "inventory_on_hand_count", "inventory_on_hand_value", "inventory_details", "version") VALUES ('39d65205-7d0a-4081-9eb2-e581c767992f', '43b778b0-2062-4724-abbb-916a4835a9b0', '0ade6bd1-e492-4e25-b681-59f42058d29a', '2025-12-11', 'on_leave', null, null, null, 'please', null, null, '{}', '2025-12-10 08:12:03.015561+00', '2025-12-10 08:12:03.015564+00', null, '0', '0', '0', '0', '0', 'false', null, '0.00', '0.00', '0.00', '0.00', '0', '0', '0.00', '0', '0', '0', '0.00', '0', '0', '0.00', '0', '0.00', '[]', '1'), ('7d9fa491-c16d-42b2-8115-b02d98873b64', '43b778b0-2062-4724-abbb-916a4835a9b0', '0ade6bd1-e492-4e25-b681-59f42058d29a', '2025-12-13', 'present',
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
INSERT INTO "public"."ticket_expenses" ("id", "ticket_assignment_id", "ticket_id", "incurred_by_user_id", "category", "description", "quantity", "unit", "unit_cost", "total_cost", "receipt_document_id", "location_verified", "verification_notes", "is_approved", "approved_by_user_id", "approved_at", "rejection_reason", "is_paid", "paid_to_user_id", "paid_at", "payment_reference", "notes", "additional_metadata", "created_at", "updated_at", "deleted_at", "payment_recipient_type", "payment_method", "payment_details", "expense_date", "timesheet_synced", "timesheet_synced_at") VALUES ('01d2c337-3104-4723-87cf-7d1de66be823', 'f5b40f0c-bc9c-4904-9ec1-7e570bda34eb', '169eec08-654d-4ffe-bdb3-45fad1101637', '43b778b0-2062-4724-abbb-916a4835a9b0', 'meals', 'kwa mathe ', '1.00', 'unit', '70.00', '70.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'false', null, null, null, 'false', null, null, null, '', '{}', '2025-12-10 11:39:05.973838+00', '2025-12-10 11:39:05.97384+00', null, 'agent', 'send_money', '{"phone_number": "+2547994597823", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('053dbe58-919c-4a11-9ca5-eb2a8384bf66', '4fe9d28c-b657-4672-9138-78edabb9749b', '1e622599-1909-49b9-9d8b-4c5cb483b29e', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'uber ', '1.00', 'unit', '340.00', '340.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-10 17:32:35.048874+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-10 17:32:47.362899+00', 'CSV_EXPORT_20251210_173247_c5cf92be-4172-4fe2-af5c-f05d83b3a938', '', '{}', '2025-12-10 12:25:27.373978+00', '2025-12-10 17:32:47.365061+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('0bf05fe1-ea66-4391-9d93-0059164b247a', '20772cb1-ec31-41dc-9cb0-73649dc6ac55', '70090c47-e9c1-4b0a-add4-69bec53d92f9', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'uber boda', '1.00', 'unit', '70.00', '70.00', null, 'false', 'Not verified: No GPS location found for 2025-12-09. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-09 08:36:43.568628+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-09 10:17:50.227495+00', 'CSV_EXPORT_20251209_101750_c5cf92be-4172-4fe2-af5c-f05d83b3a938', 'long jorney', '{}', '2025-12-09 07:36:51.915415+00', '2025-12-09 10:17:50.232336+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-09', 'false', null), ('29df452a-ceb5-4bcb-8d3f-e4b732ab46fd', 'e2096a93-8f55-4063-92c5-2bc7122b3228', '1e622599-1909-49b9-9d8b-4c5cb483b29e', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'testing vendor payment', '1.00', 'unit', '1000.00', '1000.00', null, 'false', 'Not verified: No GPS location found for 2025-12-13. Manual review required.', 'false', null, null, null, 'false', null, null, null, 'pay for fuel to shell', '{}', '2025-12-13 10:52:33.770683+00', '2025-12-13 10:52:33.964172+00', null, 'vendor', 'till_number', '{"till_number": "2342356", "business_name": "Shelli"}', '2025-12-13', 'true', '2025-12-13 10:52:33.957461+00'), ('2e21e94f-400e-4ab3-8a0a-b26724227e60', '4fe9d28c-b657-4672-9138-78edabb9749b', '1e622599-1909-49b9-9d8b-4c5cb483b29e', '43b778b0-2062-4724-abbb-916a4835a9b0', 'other', 'Toa chai', '1.00', 'unit', '50.00', '50.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-10 17:32:35.0489+00', null, 'false', null, null, null, '', '{}', '2025-12-10 12:22:02.788205+00', '2025-12-10 17:32:35.048906+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('35db9201-3c05-4853-be91-5eb6f30782d1', '34c2a077-5630-4af8-843d-e125c2497267', '2de41ce7-dff1-4151-9710-87958d18b5c4', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'nganya', '1.00', 'unit', '60.00', '60.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-10 12:49:31.240803+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-10 13:23:41.579606+00', 'CSV_EXPORT_20251210_132341_c5cf92be-4172-4fe2-af5c-f05d83b3a938', '', '{}', '2025-12-10 12:48:01.97843+00', '2025-12-10 13:23:41.581979+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('5d0a1d44-0eb4-4b32-90ec-5cbdda883238', '4fe9d28c-b657-4672-9138-78edabb9749b', '1e622599-1909-49b9-9d8b-4c5cb483b29e', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'boda to road', '1.00', 'unit', '150.00', '150.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-13 10:40:29.510366+00', null, 'false', null, null, null, '', '{}', '2025-12-10 12:02:36.66789+00', '2025-12-13 10:40:29.510372+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('6d64a8fc-219c-465b-b1a1-7e710b391a70', '4fe9d28c-b657-4672-9138-78edabb9749b', '1e622599-1909-49b9-9d8b-4c5cb483b29e', '43b778b0-2062-4724-abbb-916a4835a9b0', 'accommodation', 'Slept', '1.00', 'unit', '2000.00', '2000.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'false', null, null, null, 'false', null, null, null, '', '{}', '2025-12-10 11:53:42.062175+00', '2025-12-10 11:53:42.062179+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('6ec9e645-e4ff-4408-ac9f-de41b37e64dc', 'f5b40f0c-bc9c-4904-9ec1-7e570bda34eb', '169eec08-654d-4ffe-bdb3-45fad1101637', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'we move', '1.00', 'unit', '50.00', '50.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'false', null, null, null, 'false', null, null, null, '', '{}', '2025-12-10 11:30:03.835226+00', '2025-12-10 11:30:03.835228+00', null, 'agent', 'send_money', '{"phone_number": "+", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('754be718-8834-4b99-804b-01a3f1974e07', 'a82a3824-f4f1-4283-a2e3-8c348dbb28ce', 'f59b29fc-d0b9-4618-b0d1-889e340da612', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'boda boda', '1.00', 'unit', '5000.00', '5000.00', null, 'true', 'Verified: Agent arrived at site on 2025-11-30 with GPS location', 'false', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-09 08:51:10.572232+00', 'this is exergrated for the short distance travelled', 'false', null, null, null, 'mpesa message', '{}', '2025-11-30 20:52:12.047667+00', '2025-12-09 08:51:10.572648+00', null, null, null, null, '2025-11-30', 'false', null), ('7b697e88-c4c1-4366-b05e-c0689a90451c', '4fe9d28c-b657-4672-9138-78edabb9749b', '1e622599-1909-49b9-9d8b-4c5cb483b29e', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'bolt', '1.00', 'unit', '210.00', '210.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-10 12:49:31.240768+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-10 13:48:43.261279+00', 'CSV_EXPORT_20251210_134843_c5cf92be-4172-4fe2-af5c-f05d83b3a938', '', '{}', '2025-12-10 12:31:04.554338+00', '2025-12-10 13:48:43.265153+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('b8a0bac2-69c0-4218-a565-e1e2b6ce0d4d', '34c2a077-5630-4af8-843d-e125c2497267', '2de41ce7-dff1-4151-9710-87958d18b5c4', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'boda boda', '1.00', 'unit', '100.00', '100.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-10 12:49:31.240785+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-10 13:48:43.261303+00', 'CSV_EXPORT_20251210_134843_c5cf92be-4172-4fe2-af5c-f05d83b3a938', '', '{}', '2025-12-10 12:32:23.362852+00', '2025-12-10 13:48:43.265156+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('c466510a-96d8-48e1-82cf-9c6d4ff51fff', 'd6f25868-5117-4b85-8bb3-44314144ef6e', '0fd3ee15-5e7d-465a-b377-155f9bdb7e70', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'boda', '1.00', 'unit', '9.97', '9.97', null, 'true', 'Verified: Agent changed ticket status on 2025-12-01 with GPS location', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-08 20:37:52.435561+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-09 10:17:50.227511+00', 'CSV_EXPORT_20251209_101750_c5cf92be-4172-4fe2-af5c-f05d83b3a938', 'aZfghji', '{}', '2025-12-01 09:15:39.988606+00', '2025-12-09 10:17:50.232338+00', null, null, null, null, '2025-12-01', 'false', null), ('d73cb843-e4fb-4200-aa3e-243887714422', '34c2a077-5630-4af8-843d-e125c2497267', '2de41ce7-dff1-4151-9710-87958d18b5c4', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'matatu', '1.00', 'unit', '30.00', '30.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-10 12:49:31.240794+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-10 13:23:41.579593+00', 'CSV_EXPORT_20251210_132341_c5cf92be-4172-4fe2-af5c-f05d83b3a938', '', '{}', '2025-12-10 12:47:37.968268+00', '2025-12-10 13:23:41.581981+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('db836b45-5d6b-4e67-a12a-4619c0fb3f38', '4fe9d28c-b657-4672-9138-78edabb9749b', '1e622599-1909-49b9-9d8b-4c5cb483b29e', '43b778b0-2062-4724-abbb-916a4835a9b0', 'meals', 'rice beans na chapo', '1.00', 'unit', '80.00', '80.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'false', null, null, null, 'false', null, null, null, '', '{}', '2025-12-10 11:54:30.892742+00', '2025-12-10 12:02:07.865311+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('e5a609ec-eb74-43f0-a7f4-f031accb08fb', '69a2a4f6-f72a-425c-9f90-4088e074c13b', '1f807cf8-f139-421b-86e3-38c2f8bc7070', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'Boda to trm', '1.00', 'unit', '100.00', '100.00', null, 'true', 'Verified: Agent changed ticket status on 2025-12-02 with GPS location', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-09 10:33:11.622869+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-09 10:33:18.098152+00', 'CSV_EXPORT_20251209_103318_c5cf92be-4172-4fe2-af5c-f05d83b3a938', '', '{}', '2025-12-02 14:48:16.142758+00', '2025-12-09 10:33:18.099276+00', null, null, null, null, '2025-12-02', 'false', null), ('f41ef6b4-9b47-48cf-8ed0-b59aa20a0757', 'e2096a93-8f55-4063-92c5-2bc7122b3228', '1e622599-1909-49b9-9d8b-4c5cb483b29e', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'boda boda', '1.00', 'unit', '100.00', '100.00', null, 'false', 'Not verified: No GPS location found for 2025-12-13. Manual review required.', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-13 09:54:53.641819+00', null, 'false', null, null, null, '', '{}', '2025-12-13 09:51:22.48771+00', '2025-12-13 09:54:53.641825+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-13', 'true', '2025-12-13 09:51:22.64403+00'), ('fac7e155-a8a7-48bd-86f0-d74d8bb21b2a', 'f5b40f0c-bc9c-4904-9ec1-7e570bda34eb', '169eec08-654d-4ffe-bdb3-45fad1101637', '43b778b0-2062-4724-abbb-916a4835a9b0', 'materials', 'bought nails', '1.00', 'unit', '200.00', '200.00', null, 'false', 'Not verified: No GPS location found for 2025-12-10. Manual review required.', 'false', null, null, null, 'false', null, null, null, '', '{}', '2025-12-10 11:48:49.793431+00', '2025-12-10 11:48:49.793435+00', null, 'agent', 'send_money', '{"phone_number": "+254799459782", "recipient_name": "Viyisa"}', '2025-12-10', 'false', null), ('fce5d718-86d5-489e-88cd-f3385f487849', 'f5b40f0c-bc9c-4904-9ec1-7e570bda34eb', '169eec08-654d-4ffe-bdb3-45fad1101637', '43b778b0-2062-4724-abbb-916a4835a9b0', 'transport', 'Boda to home ', '1.00', 'unit', '100.00', '100.00', null, 'true', 'Verified: Agent changed ticket status on 2025-12-03 with GPS location', 'true', 'c5cf92be-4172-4fe2-af5c-f05d83b3a938', '2025-12-08 20:36:14.289213+00', null, 'true', '43b778b0-2062-4724-abbb-916a4835a9b0', '2025-12-08 20:58:34.466326+00', 'CSV_EXPORT_20251208_205834_c5cf92be-4172-4fe2-af5c-f05d83b3a938', '', '{}', '2025-12-03 13:33:10.63594+00', '2025-12-08 20:58:34.469281+00', null, null, null, null, '2025-12-03', 'false', null);
|
| 5 |
-
|
| 6 |
-
|
|
|
|
| 1 |
+
INSERT INTO "public"."timesheets" ("id", "user_id", "project_id", "work_date", "status", "check_in_time", "check_out_time", "hours_worked", "leave_reason", "leave_approved_by_user_id", "notes", "additional_metadata", "created_at", "updated_at", "deleted_at", "tickets_assigned", "tickets_completed", "tickets_rescheduled", "tickets_cancelled", "tickets_rejected", "is_payroll_generated", "payroll_id", "total_expenses", "approved_expenses", "pending_expenses", "rejected_expenses", "expense_claims_count", "inventory_issued_count", "inventory_issued_value", "inventory_installed_count", "inventory_consumed_count", "inventory_returned_count", "inventory_returned_value", "inventory_lost_count", "inventory_damaged_count", "inventory_loss_value", "inventory_on_hand_count", "inventory_on_hand_value", "inventory_details", "version") VALUES ('39d65205-7d0a-4081-9eb2-e581c767992f', '43b778b0-2062-4724-abbb-916a4835a9b0', '0ade6bd1-e492-4e25-b681-59f42058d29a', '2025-12-11', 'on_leave', null, null, null, 'please', null, null, '{}', '2025-12-10 08:12:03.015561+00', '2025-12-10 08:12:03.015564+00', null, '0', '0', '0', '0', '0', 'false', null, '0.00', '0.00', '0.00', '0.00', '0', '0', '0.00', '0', '0', '0', '0.00', '0', '0', '0.00', '0', '0.00', '[]', '1'), ('7d9fa491-c16d-42b2-8115-b02d98873b64', '43b778b0-2062-4724-abbb-916a4835a9b0', '0ade6bd1-e492-4e25-b681-59f42058d29a', '2025-12-13', 'present', '2025-12-13 11:35:04.461382+00', null, null, null, null, null, '{}', '2025-12-13 07:17:52.420939+00', '2025-12-13 11:54:22.418767+00', null, '1', '0', '0', '0', '0', 'false', null, '1130.00', '1110.00', '20.00', '0.00', '4', '0', '0.00', '0', '0', '0', '0.00', '0', '0', '0.00', '0', '0.00', '[]', '7');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docs/devlogs/server/runtimeerror.txt
CHANGED
|
@@ -1,39 +1,68 @@
|
|
| 1 |
-
===== Application Startup at 2025-12-13 11:
|
| 2 |
|
| 3 |
INFO: Started server process [7]
|
| 4 |
INFO: Waiting for application startup.
|
| 5 |
-
INFO: 2025-12-13T11:
|
| 6 |
-
INFO: 2025-12-13T11:
|
| 7 |
-
INFO: 2025-12-13T11:
|
| 8 |
-
INFO: 2025-12-13T11:
|
| 9 |
-
INFO: 2025-12-13T11:
|
| 10 |
-
INFO: 2025-12-13T11:
|
| 11 |
-
INFO: 2025-12-13T11:
|
| 12 |
-
INFO: 2025-12-13T11:
|
| 13 |
-
INFO: 2025-12-13T11:
|
| 14 |
-
INFO: 2025-12-13T11:
|
| 15 |
-
INFO: 2025-12-13T11:
|
| 16 |
-
INFO: 2025-12-13T11:
|
| 17 |
-
INFO: 2025-12-13T11:
|
| 18 |
-
INFO: 2025-12-13T11:
|
| 19 |
-
INFO: 2025-12-13T11:
|
| 20 |
-
INFO: 2025-12-13T11:
|
|
|
|
| 21 |
INFO: Application startup complete.
|
| 22 |
-
INFO: 2025-12-13T11:33:25 - app.main: ============================================================
|
| 23 |
INFO: Uvicorn running on http://0.0.0.0:7860 (Press CTRL+C to quit)
|
| 24 |
-
INFO: 10.16.
|
| 25 |
-
INFO:
|
| 26 |
-
INFO:
|
| 27 |
-
INFO: 2025-12-13T11:
|
| 28 |
-
INFO: 10.16.13.79:
|
| 29 |
-
INFO:
|
| 30 |
-
INFO:
|
| 31 |
-
INFO: 10.16.13.79:
|
| 32 |
-
INFO: 10.16.
|
| 33 |
-
INFO: 10.16.
|
| 34 |
-
INFO: 10.16.37.13:
|
| 35 |
-
INFO: 10.16.
|
| 36 |
-
INFO: 10.16.
|
| 37 |
-
INFO: 10.16.13.79:
|
| 38 |
-
INFO:
|
| 39 |
-
INFO:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
===== Application Startup at 2025-12-13 11:53:10 =====
|
| 2 |
|
| 3 |
INFO: Started server process [7]
|
| 4 |
INFO: Waiting for application startup.
|
| 5 |
+
INFO: 2025-12-13T11:53:21 - app.main: ============================================================
|
| 6 |
+
INFO: 2025-12-13T11:53:21 - app.main: π SwiftOps API v1.0.0 | PRODUCTION
|
| 7 |
+
INFO: 2025-12-13T11:53:21 - app.main: π Dashboard: Enabled
|
| 8 |
+
INFO: 2025-12-13T11:53:21 - app.main: ============================================================
|
| 9 |
+
INFO: 2025-12-13T11:53:21 - app.main: π¦ Database:
|
| 10 |
+
INFO: 2025-12-13T11:53:22 - app.main: β Connected | 45 tables | 6 users
|
| 11 |
+
INFO: 2025-12-13T11:53:22 - app.main: πΎ Cache & Sessions:
|
| 12 |
+
INFO: 2025-12-13T11:53:23 - app.services.otp_service: β
OTP Service initialized with Redis storage
|
| 13 |
+
INFO: 2025-12-13T11:53:23 - app.main: β Redis: Connected
|
| 14 |
+
INFO: 2025-12-13T11:53:23 - app.main: π External Services:
|
| 15 |
+
INFO: 2025-12-13T11:53:24 - app.main: β Cloudinary: Connected
|
| 16 |
+
INFO: 2025-12-13T11:53:24 - app.main: β Resend: Configured
|
| 17 |
+
INFO: 2025-12-13T11:53:24 - app.main: β WASender: Disconnected
|
| 18 |
+
INFO: 2025-12-13T11:53:24 - app.main: β Supabase: Connected | 6 buckets
|
| 19 |
+
INFO: 2025-12-13T11:53:24 - app.main: ============================================================
|
| 20 |
+
INFO: 2025-12-13T11:53:24 - app.main: β
Startup complete | Ready to serve requests
|
| 21 |
+
INFO: 2025-12-13T11:53:24 - app.main: ============================================================
|
| 22 |
INFO: Application startup complete.
|
|
|
|
| 23 |
INFO: Uvicorn running on http://0.0.0.0:7860 (Press CTRL+C to quit)
|
| 24 |
+
INFO: 10.16.13.79:60277 - "POST /api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location HTTP/1.1" 200 OK
|
| 25 |
+
INFO: 10.16.37.13:4764 - "GET /health HTTP/1.1" 200 OK
|
| 26 |
+
INFO: 10.16.13.79:61377 - "POST /api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location HTTP/1.1" 200 OK
|
| 27 |
+
INFO: 2025-12-13T11:54:22 - app.services.timesheet_realtime_service: Timesheet 7d9fa491-c16d-42b2-8115-b02d98873b64 updated for arrived_at_site. Entity: ticket_assignment:e2096a93-8f55-4063-92c5-2bc7122b3228
|
| 28 |
+
INFO: 10.16.13.79:61377 - "POST /api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/arrived HTTP/1.1" 200 OK
|
| 29 |
+
INFO: 10.16.13.79:61377 - "GET /api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail HTTP/1.1" 200 OK
|
| 30 |
+
INFO: 10.16.37.13:50595 - "POST /api/v1/ticket-assignments/assignments/e2096a93-8f55-4063-92c5-2bc7122b3228/update-location HTTP/1.1" 400 Bad Request
|
| 31 |
+
INFO: 10.16.13.79:3504 - "GET /health HTTP/1.1" 200 OK
|
| 32 |
+
INFO: 10.16.13.79:23222 - "GET /health HTTP/1.1" 200 OK
|
| 33 |
+
INFO: 10.16.37.13:57338 - "GET /health HTTP/1.1" 200 OK
|
| 34 |
+
INFO: 10.16.37.13:5211 - "GET /api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-checklist HTTP/1.1" 200 OK
|
| 35 |
+
INFO: 10.16.37.13:1550 - "GET /health HTTP/1.1" 200 OK
|
| 36 |
+
INFO: 10.16.13.79:36501 - "GET /health HTTP/1.1" 200 OK
|
| 37 |
+
INFO: 10.16.13.79:36501 - "GET /health HTTP/1.1" 200 OK
|
| 38 |
+
INFO: 2025-12-13T11:58:13 - app.services.media_service: Using forced provider: cloudinary
|
| 39 |
+
INFO: 2025-12-13T11:58:13 - app.services.media_service: Uploading 6dc8524b572ff4739383212fdca9f040.jpg as ticket_1e622599_ticket_photo_speedtest_speedtest_20251213_115813_6dc8524b572ff4739383212fdca9f0.jpg to cloudinary
|
| 40 |
+
INFO: 2025-12-13T11:58:13 - app.integrations.cloudinary: Uploaded file to Cloudinary: https://res.cloudinary.com/dnhajmziu/image/upload/v1765627093/ticket_1e622599_ticket_photo_speedtest_speedtest_20251213_115813_6dc8524b572ff4739383212fdca9f0.webp
|
| 41 |
+
INFO: 2025-12-13T11:58:13 - app.services.media_service: Document created: 4a965b9b-67ea-452c-999f-7bebe117748e (version 1)
|
| 42 |
+
INFO: 2025-12-13T11:58:13 - app.services.ticket_completion_service: Photos updated for ticket 1e622599-1909-49b9-9d8b-4c5cb483b29e: ['Speedtest']
|
| 43 |
+
INFO: 10.16.13.79:33350 - "POST /api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/upload-photos HTTP/1.1" 200 OK
|
| 44 |
+
INFO: 10.16.13.79:16293 - "GET /health HTTP/1.1" 200 OK
|
| 45 |
+
INFO: 10.16.13.79:12196 - "GET /health HTTP/1.1" 200 OK
|
| 46 |
+
INFO: 10.16.37.13:30334 - "GET /health HTTP/1.1" 200 OK
|
| 47 |
+
INFO: 10.16.13.79:62358 - "GET /health HTTP/1.1" 200 OK
|
| 48 |
+
INFO: 2025-12-13T12:00:05 - app.api.deps: Checking active user: c5cf92be-4172-4fe2-af5c-f05d83b3a938, is_active: True, type: <class 'bool'>
|
| 49 |
+
INFO: 2025-12-13T12:00:05 - app.api.deps: User c5cf92be-4172-4fe2-af5c-f05d83b3a938 is active - proceeding
|
| 50 |
+
INFO: 10.16.13.79:42937 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions HTTP/1.1" 200 OK
|
| 51 |
+
INFO: 2025-12-13T12:00:05 - app.services.ticket_service: Listed 7 tickets (total: 7) for user c5cf92be-4172-4fe2-af5c-f05d83b3a938
|
| 52 |
+
INFO: 10.16.37.13:63069 - "GET /api/v1/tickets?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a&page=1&page_size=50&status=open HTTP/1.1" 200 OK
|
| 53 |
+
INFO: 10.16.13.79:43670 - "GET /api/v1/tickets/stats?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a&status=open HTTP/1.1" 200 OK
|
| 54 |
+
INFO: 2025-12-13T12:00:14 - app.services.ticket_service: Listed 13 tickets (total: 13) for user c5cf92be-4172-4fe2-af5c-f05d83b3a938
|
| 55 |
+
INFO: 10.16.37.13:8516 - "GET /api/v1/tickets?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a&page=1&page_size=50&status=open%2Ccompleted HTTP/1.1" 200 OK
|
| 56 |
+
INFO: 10.16.13.79:9125 - "GET /api/v1/tickets/stats?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a&status=open%2Ccompleted HTTP/1.1" 200 OK
|
| 57 |
+
INFO: 10.16.37.13:8516 - "GET /health HTTP/1.1" 200 OK
|
| 58 |
+
INFO: 2025-12-13T12:00:28 - app.services.ticket_service: Listed 8 tickets (total: 8) for user c5cf92be-4172-4fe2-af5c-f05d83b3a938
|
| 59 |
+
INFO: 10.16.13.79:62533 - "GET /api/v1/tickets?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a&page=1&page_size=50&status=open%2Cin_progress HTTP/1.1" 200 OK
|
| 60 |
+
INFO: 10.16.37.13:34736 - "GET /api/v1/tickets/stats?project_id=0ade6bd1-e492-4e25-b681-59f42058d29a&status=open%2Cin_progress HTTP/1.1" 200 OK
|
| 61 |
+
INFO: 10.16.37.13:47574 - "GET /api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/detail HTTP/1.1" 200 OK
|
| 62 |
+
INFO: 10.16.37.13:47574 - "GET /api/v1/projects/0ade6bd1-e492-4e25-b681-59f42058d29a/regions/24510a5a-13a6-4334-9055-b4d476aa9e0a HTTP/1.1" 200 OK
|
| 63 |
+
INFO: 10.16.13.79:11529 - "GET /health HTTP/1.1" 200 OK
|
| 64 |
+
INFO: 2025-12-13T12:00:58 - app.services.ticket_completion_service: Completion data replaced for ticket 1e622599-1909-49b9-9d8b-4c5cb483b29e
|
| 65 |
+
INFO: 10.16.13.79:7379 - "POST /api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-data HTTP/1.1" 200 OK
|
| 66 |
+
INFO: 2025-12-13T12:01:47 - app.services.ticket_completion_service: Completion data replaced for ticket 1e622599-1909-49b9-9d8b-4c5cb483b29e
|
| 67 |
+
INFO: 10.16.13.79:38355 - "POST /api/v1/tickets/1e622599-1909-49b9-9d8b-4c5cb483b29e/completion-data HTTP/1.1" 200 OK
|
| 68 |
+
INFO: 10.16.37.13:40215 - "GET /health HTTP/1.1" 200 OK
|
src/app/integrations/cloudinary.py
CHANGED
|
@@ -112,7 +112,11 @@ class CloudinaryService:
|
|
| 112 |
upload_options['use_filename'] = True
|
| 113 |
upload_options['unique_filename'] = True
|
| 114 |
|
| 115 |
-
# Upload to Cloudinary
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
upload_result = cloudinary.uploader.upload(
|
| 117 |
file_content,
|
| 118 |
**upload_options
|
|
|
|
| 112 |
upload_options['use_filename'] = True
|
| 113 |
upload_options['unique_filename'] = True
|
| 114 |
|
| 115 |
+
# Upload to Cloudinary with timeout (60 seconds)
|
| 116 |
+
# If upload takes longer, it will raise an exception and trigger Supabase fallback
|
| 117 |
+
# Frontend has 120s timeout with retries, so 60s gives Cloudinary a fair chance
|
| 118 |
+
# while leaving time for Supabase fallback if needed
|
| 119 |
+
upload_options['timeout'] = 60
|
| 120 |
upload_result = cloudinary.uploader.upload(
|
| 121 |
file_content,
|
| 122 |
**upload_options
|