Common Windsurf Issues

Step-by-step guides for the most common Windsurf problems, written by real developers.

api

Cascade Broke Stripe Connect Setup

Expert payout functionality is broken after Cascade refactored Stripe Connect integration. The OAuth flow fails, experts cannot complete Stripe account linking, and payouts cannot be processed. This directly impacts expert earnings and platform trust.

Cascade likely modified the OAuth callback handling or token storage without understanding Stripe's requirements.

Cascade Modified API Response Contract

API clients break because Cascade changed the response format of endpoints. Clients expect certain JSON fields that are no longer present, or field names changed. This breaks mobile apps, frontend, and third-party integrations.

Cascade likely simplified or reorganized response objects without considering backward compatibility.

Cascade Disabled Middleware - Security Filter Broken

Security middleware is not executing after Cascade refactored the filter chain configuration. CORS is broken, authentication is bypassed, or request logging is missing. This is a critical security issue where unauthenticated requests are being accepted.

Cascade likely modified WebSecurityConfig or filter registration without understanding the importance of middleware order.

Cascade Broke Webhook Signature Validation

Webhook signature validation is broken after Cascade refactored the verification code. This is a critical security issue - spoofed webhooks from attackers are being accepted as legitimate. Stripe or other webhook payloads are not being verified before processing.

Cascade likely removed or modified the signature verification logic during refactoring.

Cascade Removed Rate Limiting Configuration

API rate limiting is disabled after Cascade removed rate limiting configuration. This exposes endpoints to abuse attacks. Users can make unlimited requests, potentially causing DoS or rapid data exfiltration.

Cascade likely removed @RateLimiting or rate limiting bean configuration thinking it was unnecessary.

Cascade Set CORS to Allow All Origins

CORS configuration is too permissive after Cascade set it to allow all origins ('*'). This is a security vulnerability that allows any website to make requests to your API, potentially accessing user data through browser-based attacks like CSRF.

Cascade likely used wildcard to 'fix' CORS issues without understanding security implications.

Cascade Email Queue Processing Halted

Email notifications are not being sent after Cascade modified the email queue processing. Emails remain stuck in the queue indefinitely, and users don't receive important notifications like fix approvals or payment confirmations.

Cascade likely broke the async email worker or message consumer.

Cascade GitHub Integration - Fork Permission Denied

Expert cannot create GitHub forks for fix requests after Cascade modified the GitHub OAuth integration. The fork operation fails with 'permission denied' even though the user authenticated. This breaks the core expert workflow.

Cascade likely removed required OAuth scopes or modified API call authorization.

Cascade Created Duplicate API Endpoints

API has duplicate endpoints with the same path and method after Cascade generated new controller methods. This causes routing conflicts where requests hit the wrong handler, or Spring Boot fails to start due to ambiguous endpoint definitions.

Cascade generated endpoints without checking for existing implementations.

Cascade Hardcoded Encryption Keys

Encryption keys are hardcoded in application code after Cascade generated encryption/decryption logic. This is a critical security vulnerability - anyone with access to the codebase can decrypt encrypted data, defeating the purpose of encryption.

Keys must be immediately moved to environment variables or key management service.

Cascade File Upload Without Validation

Critical file upload vulnerability after Cascade removed file validation. Users can upload arbitrary files including executables or malicious scripts. Files are stored in web-accessible directory and can be executed on the server.

This is a critical security issue requiring immediate attention.

Cascade Generated SQL Injection Vulnerability

Critical SQL injection vulnerability exists in Cascade-generated code. User input is directly concatenated into SQL queries without parameterization, allowing attackers to execute arbitrary SQL and steal data.

This is a critical security issue that must be fixed immediately.

auth

Cascade Broke Redis Session Persistence

Sessions are no longer persisting in Redis after Cascade refactored session configuration. Users are logged out when the application restarts, and distributed session management across multiple instances fails.

Cascade likely modified spring-session-redis configuration or removed crucial Redis repository setup during code reorganization.

JWT Validation Fails in Cascade-Generated Auth

API requests with JWT tokens are being rejected with signature validation errors or token validation failures, even though tokens appear valid. Cascade likely modified JWT signing key management or validation logic during refactoring.

This breaks API authentication and causes 401/403 responses for previously working endpoints.

Cascade Created Login Redirect Loop

After Cascade refactored your authentication flow, users get caught in infinite redirects between login and home page. The session is created but the redirect logic continuously checks for authentication and loops back.

This typically happens when Cascade modified session validation, redirect filters, or authentication success handlers without properly understanding the existing flow.

Cascade Generated OAuth Token Exposed in Code

Windsurf's Cascade assistant generated OAuth token handling code that accidentally hardcoded or logged sensitive tokens in plaintext. This creates a critical security vulnerability where authentication tokens are visible in version control history or logs.

You notice tokens in git history, environment files, or console output that Cascade created during refactoring.

database

Cascade Changed Transaction Isolation Level

Data consistency issues appear after Cascade modified transaction isolation level. Race conditions occur where two concurrent operations see inconsistent data. Dirty reads allow transactions to see uncommitted changes from other transactions.

Cascade likely changed isolation level to improve performance without understanding the consequences.

Cascade Created Conflicting Database Migrations

Database migrations generated by Cascade conflict with existing migrations, causing the migration engine to fail during startup. The application won't boot because Flyway/Liquibase can't determine the correct migration order.

Cascade may have generated new migrations without checking existing schema version files.

Cascade-Generated ORM Code Causes LazyInitializationException

Hibernate throws LazyInitializationException when accessing related entities that Cascade marked as lazy-loaded. The session closes before the related data is fetched, causing 'no Session' errors at runtime.

Cascade refactored entity relationships without considering transaction boundaries or fetch strategy.

Cascade Generated N+1 Query Problem

Database performance degraded after Cascade refactored data access code. Logs show hundreds of individual SELECT queries being executed instead of efficient batch loading. A single parent query triggers N queries for children.

Cascade likely generated loops that fetch entities individually instead of using batch loading or join strategies.

Cascade Left Database Schema Out of Sync

Application crashes because JPA expects columns that don't exist in database, or database has columns that entity model doesn't know about. Cascade generated entity changes without creating corresponding database migrations.

This typically manifests as 'column not found' errors or unexpected NULL values in queries.

Cascade Broke Object Serialization Format

Deserialization fails for objects saved in Redis cache or session store after Cascade modified entity fields. Old serialized objects cannot be deserialized with new class definition. This breaks session persistence and cached data retrieval.

Cascade likely added/removed fields without considering serialization compatibility.

deployment

Cascade Build Fails - Missing Dependency

Gradle build fails with 'cannot find symbol' errors or 'unresolved dependency' when Cascade generated code that uses libraries not in your classpath. The generated code imports classes that don't exist in your project.

Cascade suggests library usage without automatically updating build configuration.

Cascade Broke CI/CD Pipeline Configuration

GitHub Actions workflow or Jenkins pipeline fails after Cascade modified CI/CD configuration. Build steps are skipped, wrong versions deployed, or secrets are not accessible.

The pipeline structure was changed without understanding dependencies between stages.

Cascade Modified Dockerfile - Docker Build Timeout

Docker build takes excessive time or fails with OOM errors after Cascade modified the Dockerfile. The multi-stage build was restructured inefficiently, causing large intermediate layers or missing cache optimization.

Container builds now fail in CI/CD pipelines due to timeout or resource constraints.

Cascade Configuration - Environment Variables Not Loaded

Spring Boot application fails to start because environment variables are not being loaded after Cascade modified configuration. Application properties are null even though environment variables are set, causing NullPointerException at startup.

Cascade likely changed property placeholder syntax or removed @ConfigurationProperties annotations.

Cascade Disabled Scheduled Tasks

Scheduled tasks are not running after Cascade modified scheduling configuration. Maintenance jobs, auto-approval tasks, and cleanup jobs don't execute, causing data accumulation and operational issues.

Cascade likely removed @EnableScheduling or modified @Scheduled methods.

Cascade Created Spring Bean Circular Dependency

Spring application fails to start with 'circular dependency' error after Cascade added new beans. Bean A depends on Bean B which depends on Bean A, creating an unsolvable dependency graph. The application cannot instantiate beans in any order.

Cascade likely generated beans without understanding dependency injection order.

Cascade Referenced Missing Classpath Resource

Application fails to start with 'resource not found' error after Cascade generated code that references files that don't exist. This might be templates, configuration files, or other classpath resources.

Cascade generated code assuming files exist but didn't verify they're actually present.

Cascade Generated Code Causing NPE Waves

Application crashes frequently with NullPointerException cascades after Cascade generated code that doesn't properly handle null values. Methods receive null parameters but don't check before dereferencing. One NullPointerException in deep call stack causes application failure.

Cascade likely generated code without defensive null handling.

Cascade Generated Annotation Not Recognized

Custom annotations Cascade generated are not being recognized at runtime. Annotations are present in code but the reflection/annotation processing doesn't find them. This breaks aspect-oriented features, validation, or custom framework logic that depends on annotations.

Cascade likely used incorrect annotation configuration or retention policy.

performance

Cascade Generated Inefficient Database Query

Database queries are extremely slow after Cascade generated new data access code. The application page load takes 30+ seconds where it used to take 2 seconds. Query execution plans show full table scans or missing indexes.

Cascade likely generated queries without considering query optimization or database structure.

Cascade Added Large Dependencies - Bundle Bloat

Frontend bundle size increased dramatically after Cascade added new JavaScript dependencies. Page load time increased significantly, negatively impacting user experience and SEO metrics.

Cascade suggested useful libraries without considering bundle size impact or suggesting tree-shaking options.

Cascade Generated CPU-Intensive Loop

CPU usage spikes to 100% after Cascade added new code, causing application to become unresponsive. Server cannot handle normal traffic load, and response times are terrible. Profiling shows certain methods consuming excessive CPU.

Cascade likely generated algorithms with high computational complexity or inefficient loops.

Cascade WebSocket Implementation Drops Connections

WebSocket connections are dropping frequently after Cascade refactored real-time communication code. Users see 'connection lost' messages, and real-time updates stop arriving. The application falls back to polling, negatively impacting performance.

Cascade likely modified connection handling or heartbeat logic without proper testing.

Cascade Disabled Cache Invalidation Logic

Users see stale cached data after Cascade refactored cache management. Data is updated in database but cached version isn't invalidated, so users continue seeing old information until cache expires naturally (after hours or days).

Cascade likely removed @CacheEvict annotations or cache clearing logic.

Cascade Regex Pattern Causes Performance Catastrophe

Application becomes unresponsive after Cascade generated a complex regex pattern for validation. Regex matching against certain inputs takes seconds or minutes, consuming 100% CPU. This is a Regular Expression Denial of Service (ReDoS) vulnerability.

Cascade likely generated a regex with catastrophic backtracking.

Cascade Generated Code with Memory Leak

Memory usage continuously increases after Cascade generated new code. Application eventually runs out of memory and crashes. Heap analysis shows objects are not being garbage collected even after they're no longer needed.

Cascade likely created resource holders or listeners that are never cleaned up.

ui

Cascade Broke Thymeleaf Template Rendering

HTML pages fail to render after Cascade modified Thymeleaf templates. Error pages show template processing exceptions instead of actual content. The application shows 'Thymeleaf template not found' or 'variable not available in context' errors.

Cascade likely broke variable references or modified template structure incorrectly.

Cascade Broke Responsive CSS Layout

Website layout is not responsive after Cascade refactored CSS. Mobile views are broken, grid layouts collapse incorrectly, or media queries are not working. The responsive design that worked before is now non-functional.

Cascade likely removed or modified media queries, flexbox properties, or CSS variables during refactoring.

Cascade Removed Form Validation Logic

Form validation is completely broken after Cascade refactored form submission code. Invalid data is being accepted, required fields show no validation errors, and server receives malformed data.

Cascade likely removed validation logic thinking it was redundant or simplified the submission handler.

Cascade Generated Modal Component State Desync

Modal dialogs show stale data or don't reflect state changes after Cascade refactored component logic. When you open a modal after editing, it shows old information. State updates in the main component don't propagate to the modal.

Cascade likely broke prop passing, event emission, or state management between components.

Cascade String Comparison Locale Bug

String comparisons fail for users in certain locales after Cascade generated comparison code. Case-insensitive comparisons don't work correctly in non-English locales, or locale-specific characters are not handled properly. Users report login failures or data lookup issues.

Cascade used simple .toLowerCase() without considering locale-specific case conversion rules.

Cascade Introduced XSS Vulnerability in Templates

Cross-site scripting (XSS) vulnerability introduced in Cascade-generated templates. User input is rendered without HTML escaping, allowing attackers to inject malicious JavaScript that runs in other users' browsers.

This is a critical security issue requiring immediate fix.

Cascade Broke Payment Form UI Components

Payment form is not functional after Cascade refactored the UI. Form fields don't submit properly, Stripe Elements are not initializing, or the form displays errors. Users cannot complete payments.

Cascade likely modified Stripe JavaScript integration or form submission handlers without testing the complete flow.

Stuck on Windsurf?
Real developers can help.

You don't need to be technical. Just describe what's wrong and a verified developer will handle the rest.

Get Help