Skip to content

Commit cdb1f0e

Browse files
committed
fix: clear failed panel tunnel starts
1 parent 51a20a5 commit cdb1f0e

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

packages/api/src/services/panel-cloudflare-tunnel.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,14 @@ const removeTunnelHomeBestEffort = (record: PanelCloudflareTunnelRecord): void =
170170
}
171171
}
172172

173+
const discardUnstartedRecord = (record: PanelCloudflareTunnelRecord): Effect.Effect<void> =>
174+
Effect.sync(() => {
175+
if (currentRecord === record) {
176+
currentRecord = null
177+
}
178+
removeTunnelHomeBestEffort(record)
179+
})
180+
173181
const finishStoppedRecord = (
174182
record: PanelCloudflareTunnelRecord,
175183
error: string | null = null
@@ -379,7 +387,11 @@ const waitForRecordId = (
379387

380388
const record = createStartingRecord(resolved.panelUrl)
381389
currentRecord = record
382-
yield* _(startCloudflaredProcess(record, resolved.targetUrl))
390+
yield* _(
391+
startCloudflaredProcess(record, resolved.targetUrl).pipe(
392+
Effect.tapError(() => discardUnstartedRecord(record))
393+
)
394+
)
383395
return record.session.id
384396
}).pipe(tunnelRecordLock.withPermits(1))
385397

0 commit comments

Comments
 (0)