Friction

Hasura

hasura.io · Backend platform

GraphQL engine that serves instant APIs over databases.

76 items · 77 source threads · 2 source types · updated 2024-05

Compare

Pain points 32

ItemAreaSeveritySupportLast seen
Memory leak and out-of-memory crashes since v2.19

An on-premises deployment sees memory leaks and OOM kills on versions 2.19 and later, including the latest, while v2.8.4 behaved correctly.

Affects: on-premises operators

Reliability & bugsCauses churn2 sources2023-04

“We've been seeing memory leaks since version v2.19.x and higher”

“Hasura was constantly using all available memory, and then crashing”

Separate Hasura instance needed per database when schemas share table names

A team with many databases that share an identical table structure must run one Hasura instance per database because table names conflict and cannot be renamed, adding maintenance and routing work.

Affects: team exposing a public API over SQL Server databases for enterprise customers

Self-hosting & upgradesCauses churn2 sources2021-06

“As it stands, we have to maintain a separate Hasura instance for each of these databases as the table names conflict”

“it's populating them with the tenant name (e.g client1_users, should just be users)”

Docker image does not run on Apple Silicon Macs

The Hasura container is built for amd64 and gives a platform mismatch warning on Mac M1 Docker, so the requester asks for an arm64 build.

Affects: developers on Apple Silicon Macs

Self-hosting & upgradesBlocks work2 sources2021-01

“I have hit only 1 blocking issue with running Hasura on linux/ARM, which is the installation of the”

“The Hasura Docker container does not work on the Mac M1 Docker preview”

No support for the Relay protocol

Users who need the Relay protocol have to choose another tool because Hasura did not support it at the time.

Affects: teams using Relay

API & developer experienceBlocks work2 sources2020-06

“Hasura's where clauses in relay only accept the database id, and not the relay id”

“Hasura doesn't support the Relay protocol, so if that's important to you, you'll need to find a different tool”

NOT NULL columns are not marked required in the generated schema

Non-nullable database columns are not exposed as required fields in the GraphQL schema, which the user finds surprising.

API & developer experienceBlocks work2 sources2019-04

“Every field of a schema generated from SQL View is nullable/optional even though the underlying table might have NOT NULL fields”

“Not nullable fields in the database are not exposed through the graphql schema as required”

New Pro plan pricing is more than 10x the old Standard plan

Locked: summary and evidence are part of Sprint Pass and Pro

Pricing & plansCauses churn1 source2023-02
No sensible entry price makes Hasura Cloud hard to propose to a company

Locked: summary and evidence are part of Sprint Pass and Pro

Pricing & plansCauses churn1 source2023-02
Permission system hits limits quickly, especially across relationships

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityCauses churn1 source2020-04
CockroachDB support stalled because Hasura relies on Postgres triggers

Locked: summary and evidence are part of Sprint Pass and Pro

IntegrationsBlocks work1 source2021-10
Seed export fails with Postgres 14 because pg_dump is version 13

Locked: summary and evidence are part of Sprint Pass and Pro

Self-hosting & upgradesBlocks work1 source2021-10
Cannot create an array relationship from an array of ids

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2021-04
Unsigned JWTs from the Firebase auth emulator are rejected locally

Locked: summary and evidence are part of Sprint Pass and Pro

Setup & onboardingBlocks work1 source2020-12
Actions cannot return nested custom object types

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2020-05
Action handlers have no built-in security layer

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2020-05
WebSocket subscriptions fail with invalid timestamp errors and repeated reconnects

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work1 source2020-04
Partial unique indexes missing from the on_conflict constraint enum

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work1 source2020-01
Migrations cannot create indexes concurrently because they run in a transaction

Locked: summary and evidence are part of Sprint Pass and Pro

Data export & migrationBlocks work1 source2019-09
Hasura console cannot be reached when the CLI runs in a Docker container

Locked: summary and evidence are part of Sprint Pass and Pro

Self-hosting & upgradesBlocks work1 source2019-09
Postgres RAISE EXCEPTION messages are not shown to the client

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2019-07
File uploads through a remote schema fail with an invalid json error

Locked: summary and evidence are part of Sprint Pass and Pro

IntegrationsBlocks work1 source2019-06
JWT check fails on one second of clock skew

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2019-05
Custom JWT claims reject array values

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2019-03
AGPL license blocks bundling the engine as a dependency

Locked: summary and evidence are part of Sprint Pass and Pro

Pricing & plansBlocks work1 source2019-01
Ordering by an aggregate ignores the filter applied to that aggregate

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work1 source2019-01
Console UI is clumsy for bulk permission edits; schema testing is cumbersome

Locked: summary and evidence are part of Sprint Pass and Pro

UI & usabilityAnnoyance1 source2022-06
Monitoring service is only available on Hasura Cloud, not the open-source version

Locked: summary and evidence are part of Sprint Pass and Pro

Reporting & analyticsAnnoyance1 source2022-02
Authentication for roles beyond user and admin is hard to implement

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityAnnoyance1 source2021-06
Auth0 setup for a React Native app is cumbersome and docs are outdated

Locked: summary and evidence are part of Sprint Pass and Pro

DocumentationAnnoyance1 source2021-06
Role-based permissions are not defined in code

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityAnnoyance1 source2020-03
Queries return arrays even when a single object is wanted

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2019-04
Postgres array inputs must be passed as string literals

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2018-09
Materialized views are not listed in the console

Locked: summary and evidence are part of Sprint Pass and Pro

UI & usabilityAnnoyance1 source2018-07

Feature requests 40

ItemAreaSeveritySupportLast seen
Group-by aggregations needed without writing SQL functions

The user wants built-in group-by aggregation support, because today each such query requires writing a custom database function, which they find tedious.

Affects: heavy Hasura user

API & developer experienceBlocks work2 sources2022-05

“the biggest thing I desire from it is the ability to do group by aggregations”

“the thing I wish it had out of the box is groupby aggregates”

Allow filtering by computed fields

Computed fields such as a full name cannot be used in where filters, and the requester wants that to work.

API & developer experienceBlocks work2 sources2020-04

“It would be so great if Hasura supports computed field in order by”

“If you have a computed field such as `full_name`, it would be very useful to be able to filter by this value”

Retry remote schema introspection automatically on failure

If a remote schema server is not up when metadata is applied, Hasura starts with an inconsistency that must be fixed manually in the console.

Affects: teams deploying metadata and services together in CI/CD

Reliability & bugsBlocks work1 source2022-04

“When remote schema introspection fails, hasura should periodically retry”

A hobby-priced cloud tier is missing for small projects and EU hosting

The commenter wanted to move all instances to Hasura Cloud but could not justify the monthly plan for small side projects, mainly to get a European region with lower latency.

Affects: freelancer running weekend projects and small client work

Pricing & plansBlocks work1 source2021-10

“I could not defend spending $99/month on each weekend projects or small client work just to get my instances to europe”

Prefix and namespace support for sources and remote schemas

Adding sources with conflicting table names requires a way to prefix types and root fields or place them under a namespace.

IntegrationsBlocks work1 source2020-09

“the user should be able to give a **prefix** which is added to every type and root fields”

SQL transaction management across multiple requests

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2020-09
Aggregates are missing from the Relay API

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2020-08
Let actions reuse types already in the schema

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2020-06
Read secrets from Docker secrets files instead of environment variables

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2020-03
Permission checks based only on session variables

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2020-01
Permission rules should compare columns across tables

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2019-12
Separate permissions for primary-key lookups and list queries

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2019-11
Apollo Federation support to run Hasura behind an Apollo gateway

Locked: summary and evidence are part of Sprint Pass and Pro

IntegrationsBlocks work1 source2019-10
Update many rows with different values in one mutation

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2019-08
SQL functions such as current_date in row select permissions

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2019-07
Polymorphic relations with union or interface types

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2019-06
Support multiple JWT secrets in one Hasura server

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2019-05
Rate limiting and query cost scoring

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2019-05
Dead letter queue for failed event trigger webhooks

Locked: summary and evidence are part of Sprint Pass and Pro

Reliability & bugsBlocks work1 source2019-04
Separate read and write database connections for Aurora replicas

Locked: summary and evidence are part of Sprint Pass and Pro

PerformanceBlocks work1 source2019-03
Allow whitelisted session variables via HTTP headers

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2019-02
Nested updates are missing although nested inserts exist

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2019-02
Filter and order by aggregate values in where clauses

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2019-01
CLI command to track all tables and relationships

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2019-01
A pre-write event trigger for custom validation

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceBlocks work1 source2019-01
No ARM Docker image for a Raspberry Pi production cluster

Locked: summary and evidence are part of Sprint Pass and Pro

Self-hosting & upgradesBlocks work1 source2018-12
Encrypt selected fields at rest

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2018-12
Use relationship or view data when creating event triggers

Locked: summary and evidence are part of Sprint Pass and Pro

IntegrationsBlocks work1 source2018-12
Support multiple roles per user and per query

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2018-10
Persisted queries to hide raw queries and the schema

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityBlocks work1 source2018-08
Query caching missing from the open-source edition

Locked: summary and evidence are part of Sprint Pass and Pro

PerformanceAnnoyance1 source2022-05
Read-only mode for the deployed console

Locked: summary and evidence are part of Sprint Pass and Pro

Permissions & securityAnnoyance1 source2020-07
Map UUID columns to the standard GraphQL ID type

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2019-12
Pause event triggers without dropping them

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2019-11
Global naming convention for generated schema names

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationAnnoyance1 source2019-11
Use session variables inside GraphQL queries

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2019-08
Sort results by a path inside a JSON column

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2019-07
String templates for event trigger and remote schema webhook URLs

Locked: summary and evidence are part of Sprint Pass and Pro

CustomizationAnnoyance1 source2019-07
Conditional event triggers with boolean filters

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2018-12
Look up a single object by any unique key

Locked: summary and evidence are part of Sprint Pass and Pro

API & developer experienceAnnoyance1 source2018-09

Workarounds 2

ItemAreaSeveritySupportLast seen
Organization and team based multi-tenant permissions are hard to model

Modeling organization, team or multi-tenant permissions was one of the biggest pain points; the usual advice is to filter on a session variable, and a community member found a way to avoid needing one.

Affects: teams building multi-tenant apps

Permissions & securityBlocks work1 source2020-04

“One of the biggest pain points I found was modeling Organization/Team/Multi-Tenant based permissions”

Recursive CTEs, cross-database joins and large counts needed workarounds

On a large mature Postgres database Hasura scaled well, but recursive queries, joins across databases and very large counts required workarounds.

Affects: team running Hasura over a 1 TB+ database with thousands of concurrent users

PerformanceAnnoyance1 source2022-04

“Some areas that needed a bit work around for me - recursive CTEs, cross-db joins, performance of very large counts”

Switching reasons 2

ItemAreaSeveritySupportLast seen
Team moved from GraphQL and Hasura back to REST endpoints

Hasura helped a team iterate quickly early on, but once the product was better defined they switched back to REST and synced frontend and backend types with helper code.

Affects: product engineering team

API & developer experienceCauses churn1 source2024-05

“Sometime in 2022 we switched back to REST endpoints for all of the reasons listed”

Prefers Supabase because writing SQL directly beats a GraphQL indirection

A developer who used Hasura and found it good now likes Supabase more, since writing SQL directly is easier than going through GraphQL.

API & developer experienceBlocks work1 source2020-09

“Easier to directly write SQL than indirection of graphql”