Pains
2403 pains collected
Poor Data Ingestion Documentation and Examples
6TensorFlow documentation focuses on well-known academic datasets but lacks authoritative examples for real-world data ingestion with messy input data (weird shapes, padding, distributions, tokenization), creating a significant learning barrier for practical applications.
Learning Curve for React Paradigms in WordPress
6React introduces paradigms that fundamentally differ from PHP or jQuery workflows. Developers must understand state management, hydration (syncing server-rendered markup with client-side React), and new mental models, creating significant learning friction for traditional WordPress developers.
Row-Level Security policies difficult to debug and manage
6Debugging RLS policies requires diving into the Supabase dashboard, making them disconnected from the main codebase. Complex policies are time-consuming to debug and misconfiguration can expose data.
Global state and circular dependency issues complicate unit testing
6FastAPI's global app object state is difficult to patch in unit tests. Accessing global state requires importing from other files, easily leading to circular dependencies, inline imports, and problematic testing patterns.
Difficulty tracking client queries in large GraphQL applications
6In large, complex GraphQL applications, tracking how clients query the API is burdensome and requires significant engineering effort. Maintaining consistency and preventing the API from devolving into a REST-like structure as the product evolves demands considerable discipline.
Missing Symbolic Loops Support
6TensorFlow lacks prebuilt support for symbolic loops. It does not implicitly expand the graph and instead manages forward activations in different memory locations for each loop iteration without creating a static graph, limiting certain control flow operations.
Lack of standard API for inter-process data sharing
6Python lacks a standard, well-designed API for sharing data between processes. The multiprocessing.Queues are limited and third-party libraries implement parallelism in inconsistent ways, forcing developers to build custom RPC solutions or choose between incompatible approaches.
IPv6 support breaks existing IAM policies with unexpected behavior
6AWS adding IPv6/AAAA support to endpoints breaks existing IAM policies that use v4-centric statements (like aws:SourceIp). This causes unexpected DENYs or, worse, unexpected ALLOWs that compromise access control, impacting customers in affected regions with limited workarounds.
No structured development guidelines for database version control
6Supabase lacks guides for structured database development. Developers must create workarounds like master GitHub repos of SQL commands and custom documentation, making collaboration and migration difficult.
Data storage and transfer cost management
6Data storage and transit costs consume a significant portion of cloud expenditures. Understanding and optimizing these costs is complex due to variable pricing based on location, capacity, and transfer patterns.
Migration from Flask/Django requires learning curve and replacement of familiar tools
6Migrating from Flask or Django to FastAPI requires replacing familiar tools: `requests` must be replaced with `httpx` for async operations, Django REST Framework serializers must become Pydantic models, and the async paradigm shift is non-trivial. FastAPI lacks the built-in ORM and admin panel developers relied on.
Complex PostgreSQL Issues Bounced Back to Users
6Supabase support sometimes refuses to help with complex PostgreSQL issues, claiming they are database questions rather than platform questions. This can leave developers stuck without recourse.
Rapid ecosystem changes and version tracking
6The Python ecosystem evolves constantly with new versions of language, libraries, and frameworks released regularly. Tracking breaking changes, deprecations, and new features is time-consuming and requires significant effort investment.
Continuous deployment requires expertise in fast rollback and mean-time-to-resolution
6Continuous deployment makes safe, effective rollback mandatory—not optional. This requires developers to be skilled at rapid testing and mean-time-to-resolution practices, effectively requiring a different skill set than traditional deployment strategies.
Limited framework support and difficult integration outside Next.js
6Clerk is tightly coupled to Next.js with pre-built UI components optimized for that framework. Integration with other frameworks or backend authentication scenarios is difficult and less well-supported.
Diverse Deployment Environments Create Configuration and Management Sprawl
6Managing applications across diverse deployment environments (AWS, Azure, on-premise, Kubernetes, serverless) requires different NGINX configurations, tools, and operational knowledge. This diversity leads to complexity sprawl, configuration drift, and increased operational toil.
Type erasure limits generic features and expressiveness
6Java's generics were implemented using type erasure for backward compatibility, limiting available features compared to other languages. A 2016 discovery revealed Java generics to be unsound, causing ClassCastExceptions and runtime errors.
Security implementation requires additional expertise and testing
6FastAPI applications must implement robust security measures against common vulnerabilities, requiring developers to conduct thorough security testing and ensure data protection protocols, which demands additional resources and expertise.
Poor compiler error messages and diagnostics
6Swift compiler errors are often cryptic, unhelpful, and point to incorrect locations in code. The error messages resemble a 'Magic 8-ball' with little actual guidance on what's wrong, making debugging difficult and time-consuming.
GPU Memory Hogging and Allocation Issues
6TensorFlow attempts to allocate all available GPU memory on startup, which can prevent other code from accessing the same hardware and limits flexibility in local development environments where developers want to allocate portions of GPU to different tasks.
Query and index optimization challenges at scale
6As MongoDB databases grow in size and complexity, queries become slow and inefficient. Developers must fine-tune queries, indexes, and database architecture to ensure optimal performance, but this is time-consuming and error-prone.
Under-fetching requiring multiple API round trips
6GraphQL queries may not fetch sufficient data in a single request, necessitating additional round trips to enrich data and build complete models. This wastes bandwidth, consumes resources, adds latency, and increases complexity for API consumers.
Overusing Pydantic models throughout application causes performance overhead
6Using Pydantic models as primary data structures beyond API boundaries creates significant 'serialization/deserialization debt'. Pydantic object creation is 6.5x slower than Python dataclasses, memory usage is 2.5x higher, and JSON operations are 1.5x slower. This compounds quickly with thousands of objects.
Performance degradation from unpolished updates and middleware issues
6FastAPI shows significantly lower request throughput compared to Node.js and Golang on identical hardware during benchmarks. Users report poor middleware performance and approximately 50% performance loss when using annotated dependencies.