Skip to content

Commit 48b4661

Browse files
TheodoreSpeaksTheodore Li
authored andcommitted
feat(posthog): Add posthog log for signup failed (#3998)
* feat(posthog): Add posthog log for signup failed * Adjust event shape * Remove false signup failed events --------- Co-authored-by: Theodore Li <theo@sim.ai>
1 parent 09a110b commit 48b4661

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

apps/sim/app/(auth)/signup/signup-form.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,9 @@ function SignupFormContent({
249249
widget.execute()
250250
token = await widget.getResponsePromise()
251251
} catch {
252+
captureEvent(posthog, 'signup_failed', {
253+
error_code: 'captcha_client_failure',
254+
})
252255
setFormError('Captcha verification failed. Please try again.')
253256
setIsLoading(false)
254257
return
@@ -272,7 +275,9 @@ function SignupFormContent({
272275
logger.error('Signup error:', ctx.error)
273276
const errorMessage: string[] = ['Failed to create account']
274277

278+
let errorCode = 'unknown'
275279
if (ctx.error.code?.includes('USER_ALREADY_EXISTS')) {
280+
errorCode = 'user_already_exists'
276281
errorMessage.push(
277282
'An account with this email already exists. Please sign in instead.'
278283
)
@@ -281,31 +286,39 @@ function SignupFormContent({
281286
ctx.error.code?.includes('BAD_REQUEST') ||
282287
ctx.error.message?.includes('Email and password sign up is not enabled')
283288
) {
289+
errorCode = 'signup_disabled'
284290
errorMessage.push('Email signup is currently disabled.')
285291
setEmailError(errorMessage[0])
286292
} else if (ctx.error.code?.includes('INVALID_EMAIL')) {
293+
errorCode = 'invalid_email'
287294
errorMessage.push('Please enter a valid email address.')
288295
setEmailError(errorMessage[0])
289296
} else if (ctx.error.code?.includes('PASSWORD_TOO_SHORT')) {
297+
errorCode = 'password_too_short'
290298
errorMessage.push('Password must be at least 8 characters long.')
291299
setPasswordErrors(errorMessage)
292300
setShowValidationError(true)
293301
} else if (ctx.error.code?.includes('PASSWORD_TOO_LONG')) {
302+
errorCode = 'password_too_long'
294303
errorMessage.push('Password must be less than 128 characters long.')
295304
setPasswordErrors(errorMessage)
296305
setShowValidationError(true)
297306
} else if (ctx.error.code?.includes('network')) {
307+
errorCode = 'network_error'
298308
errorMessage.push('Network error. Please check your connection and try again.')
299309
setPasswordErrors(errorMessage)
300310
setShowValidationError(true)
301311
} else if (ctx.error.code?.includes('rate limit')) {
312+
errorCode = 'rate_limited'
302313
errorMessage.push('Too many requests. Please wait a moment before trying again.')
303314
setPasswordErrors(errorMessage)
304315
setShowValidationError(true)
305316
} else {
306317
setPasswordErrors(errorMessage)
307318
setShowValidationError(true)
308319
}
320+
321+
captureEvent(posthog, 'signup_failed', { error_code: errorCode })
309322
},
310323
}
311324
)

apps/sim/lib/posthog/events.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ export interface PostHogEventMap {
2828

2929
signup_page_viewed: Record<string, never>
3030

31+
signup_failed: {
32+
error_code: string
33+
}
34+
3135
subscription_created: {
3236
plan: string
3337
status: string

0 commit comments

Comments
 (0)