Pains

726 pains collected

Severity:

useEffect Hook Complexity and Dependency Array Management

7

useEffect is used by 98% of developers but has the lowest satisfaction ratio of any React hook. The top complaint (37%) centers on finicky reactivity, stale closures, and effect cleanup issues. Dependency array problems account for 21% of complaints, a 23.5% year-over-year increase.

dxReactuseEffect

Complex state logistics in CI/CD automation pipelines

7

Automation pipelines and scripting struggle to handle stateful resource management and state logistics across multiple code paths, despite being critical for continuous integration.

deployTerraformIaCCI/CD

Docker disk space exhaustion

7

Docker's /var/lib/docker directory fills up with unused images, volumes, and logs, causing "No Space Left on Device" errors. Manual cleanup is required.

storageDocker

Goroutines lack safety guarantees and debugging tools

7

Go's goroutines lack compile-time safety guarantees, leading to orphaned routines, race conditions, and deadlocks. Unlike Rust, Go offers no memory safety at compile time. Additionally, goroutineID is not exposed, making debugging and logging difficult.

performanceGo

Complexity and Scalability Challenges in Docker Development

7

As Docker projects scale in size and complexity, developers face significant technical and operational challenges encompassing container orchestration, networking, security vulnerabilities, and integration with existing systems. The inherent complexities become more pronounced when managing large-scale deployments.

architectureDocker

Premature adoption of advanced networking solutions

7

Teams implement service meshes, custom CNI plugins, or multi-cluster communication before mastering Kubernetes' native networking primitives (Pod-to-Pod communication, ClusterIP Services, DNS, ingress). This introduces additional abstractions and failure points making troubleshooting extremely difficult.

networkingKubernetesservice mesh

ConfigMap and Secret management scattered across environments

7

Configuration management starts simple but becomes unmaintainable with dozens of scattered ConfigMaps, duplicated values, no source of truth, and no automated rotation. Manual updates across multiple environments cause inconsistencies, forgotten updates, and lack of audit trails.

configKubernetes

Dependency version conflicts and compatibility issues

7

Interdependencies between libraries and rapid ecosystem evolution cause compatibility issues and version conflicts. Developers may need a specific library that's incompatible with their Python version or other dependencies, requiring complex troubleshooting.

dependencyPython

Library incompatibility issues with Next.js and Three.js

7

Integrating Three.js with Next.js creates compatibility issues that are difficult to resolve, breaking expected library functionality and causing significant frustration during development.

compatibilityNext.jsThree.js

Over 50% of users experience state-related issues

7

A HashiCorp survey revealed that more than half of Terraform users encounter state-related problems, indicating widespread technical complexity and inadequate state management solutions.

otherTerraformIaC

Validation and testing capabilities are immature

7

Terraform lacks a robust, built-in testing framework for HCL. Unit testing is difficult and integration testing (spinning up real infrastructure) is slow and expensive. Teams resort to embedding validation scripts or hacks, leading to accidental infrastructure drifts reaching production.

testingTerraform

Cloud API rate limits and eventual consistency issues during large applies

7

Large Terraform applies trigger API throttling (429 errors) when hitting per-account or per-region cloud provider limits. Additionally, eventually-consistent cloud services may not reflect changes immediately, causing subsequent API calls to fail or return stale data.

networkingTerraformAWScloud providers

Configuration drift from identical dev and prod manifests

7

Using the same Kubernetes manifests across development, staging, and production without environment-specific customization leads to instability, poor performance, and security gaps. Environment factors like traffic patterns, scaling needs, and access control differ significantly.

configKubernetes

Debugging asynchronous and concurrent code complexity

7

Debugging asynchronous and concurrent Python code presents significant challenges. Asynchronous programming features like asyncio and multithreading introduce complexities such as race conditions and deadlocks, making issue identification and resolution harder.

testingPythonasynciomultithreading

State refactoring and cross-boundary resource moves lack tooling support

7

Moving resources between state files or across state boundaries is not supported by terraform mv or other built-in tools. Teams must manually edit JSON state files or write custom tooling to reorganize infrastructure across projects or environments.

dxTerraformstate

Container entrypoint complexity and process termination

7

Complex tasks hidden in single entrypoints cause containers to terminate unexpectedly. If the entrypoint process dies, the entire container fails, making debugging difficult and requiring workarounds.

dxDocker

Create React App Sunset and Migration Pain

7

Create React App, used by most React developers, was sunset in February 2025, forcing migrations to alternative tooling. This creates significant disruption and requires developers to rebuild their setup and dependency chains, generating migration headaches.

migrationCreate React App

npm Installation Performance Degradation

7

npm suffers from slow installation times and high resource consumption, particularly in large-scale projects with many dependencies. This impacts developer productivity and build times, with developers finding alternatives like Yarn and pnpm faster.

performancenpmYarnpnpm

Terraform state drift from manual cloud console changes

7

Teams circumvent Terraform workflows by making changes directly in cloud provider consoles, causing state files to become out of sync with actual infrastructure. This drift prevents accurate planning and can lead to unexpected behavior during subsequent Terraform operations.

configTerraform

Error handling patterns are verbose and outdated

7

Go's repetitive if err != nil pattern is seen as verbose boilerplate compared to modern error handling in Rust and TypeScript. Developers report fatigue and decreased productivity in large codebases, and 28% of survey respondents want language features for better error handling.

dxGo

GitHub Actions control plane reliability and infrastructure issues

7

GitHub Actions suffers from recurring control plane problems including broker/backend message relay failures, hung logs, unexplained outages, and unsafe default behaviors (e.g., safe_sleep). These are long-standing issues that undermine trust in CI/CD reliability.

deployGitHub Actions

Restrictive Type Checking Blocks Valid Language Patterns

7

TypeScript's type system prevents developers from using certain valid JavaScript patterns. For example, nested function definitions within objects don't work properly, forcing developers to use less natural workarounds like the builder pattern.

compatibilityTypeScript

Self-hosted GitHub Actions runners lack parity with public runners

7

GitHub does not release Docker containers matching the public runner images. Self-hosted runners have poor support for rootless Docker-in-Docker and other standard configurations. GitHub expects users to do 90% of the work to maintain self-hosted infrastructure, yet charges for the service.

configGitHub ActionsDocker

Insufficient liveness and readiness probe configuration

7

Deploying containers without explicit health checks causes Kubernetes to assume containers are functioning even when unresponsive, initializing, or stuck. The platform considers any non-exited process as 'running' without additional signals.

configKubernetes
14567831