diff --git a/packages/slack/src/services/auth.ts b/packages/slack/src/services/auth.ts index 97d9af92d..621d345dc 100644 --- a/packages/slack/src/services/auth.ts +++ b/packages/slack/src/services/auth.ts @@ -85,6 +85,9 @@ export class SlackAuthService { // Exchange code for tokens const tokenResponse = await this.exchangeCodeForTokens(code); + // Log the raw response for debugging + console.info('Slack OAuth raw response:', JSON.stringify(tokenResponse, null, 2)); + // Validate response const oauthData = validateWithSchema( SlackOAuthResponseSchema, @@ -213,6 +216,18 @@ export class SlackAuthService { } const data = await response.json(); + + // Check if Slack returned an error in the response body + const responseData = data as { ok?: boolean; error?: string; error_description?: string }; + if (responseData.ok === false || responseData.error) { + console.error('Slack OAuth error response:', { + ok: responseData.ok, + error: responseData.error, + error_description: responseData.error_description, + fullResponse: data, + }); + } + return data; } catch (error) { if (error instanceof SlackIntegrationError) { diff --git a/packages/slack/src/utils/validation-helpers.ts b/packages/slack/src/utils/validation-helpers.ts index ccbb34893..0d016d3f3 100644 --- a/packages/slack/src/utils/validation-helpers.ts +++ b/packages/slack/src/utils/validation-helpers.ts @@ -17,6 +17,14 @@ export function validateWithSchema( const result = schema.safeParse(data); if (!result.success) { + // Log detailed validation errors for debugging + console.error('Schema validation failed:', { + message: errorMessage, + errors: result.error.errors, + flattened: result.error.flatten(), + receivedData: data, + }); + throw new SlackIntegrationError('UNKNOWN_ERROR', errorMessage, false, { zodError: result.error.flatten(), }); diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 0b533f742..410f435b2 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -4,4 +4,4 @@ "private": false, "license": "MIT", "scripts": {} -} \ No newline at end of file +}