-
Notifications
You must be signed in to change notification settings - Fork 19
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
The cause of this problem is that the Redis client Outpost uses does not support Redis clusters. #465 is a PR that adds support and should be completed to complete this work.
Description
When running Outpost on Azure and using Azure Managed Redis (connecting over non-TLS port 10000), attempts to create a destination via the API or Portal result in a 500 Internal Server Error. The same setup works without errors when using Azure Cache for Redis (port 6379). This suggests a possible version or protocol difference between the two Redis offerings that could be triggering the issue.
Steps to Reproduce
- Deploy Outpost API container on Azure (using Container Apps, per provided deployment scripts with modifications for existing Azure services).
- Configure Outpost to use:
- Azure Managed Redis on port
10000 - Any Postgres DB
- Azure Service Bus for topics/subscriptions
- Azure Managed Redis on port
- Create a tenant successfully via the API.
- Attempt to create a destination via the Portal or directly with the API:
curl --request POST --url http://localhost:3333/api/v1/:tenant_id/destinations --header 'Content-Type: application/json' --data '{
"type": "webhook",
"topics": ["user.created"],
"config": {
"url": "{URL}"
},
"credentials": {}
}'(Add auth to the above command)
Expected Result
Destination is created successfully.
Actual Result
500 Internal Server Error returned. Logs show:
error: EXECABORT Transaction discarded because of previous errors.
error_type: proto.RedisError
error_trace: github.com/hookdeck/outpost/internal/services/api.NewErrInternalServer
/home/runner/work/outpost/outpost/internal/services/api/errorhandler_middleware.go:101
github.com/hookdeck/outpost/internal/services/api.(*DestinationHandlers).handleUpsertDestinationError
/home/runner/work/outpost/outpost/internal/services/api/destination_handlers.go:307
Additional Observations
- Works fine with Azure Cache for Redis (
6379). - Fails with Azure Managed Redis (
10000). - Tenant creation works in both cases, but destination creation fails only on Managed Redis.
- API container can start and connect to Redis, Postgres, and Service Bus without issue.
- This was tested using Outpost v0.4.0
Hypotheses
- Difference in Redis server version or configuration between Azure Cache and Azure Managed Redis (possibly RESP3 vs RESP2 or ACL/auth differences).
- TLS or protocol handling on port
10000might differ from6379. - Data handling in
credentialsor encryption routines could be failing only on this Redis version.
Next Steps
- Reproduce locally connecting to an Azure Managed Redis instance.
- Compare Redis
INFOoutput and configuration between Azure Cache and Azure Managed Redis. - Test explicit TLS vs non-TLS connections on both offerings.
- Investigate whether Redis transactions behave differently on Managed Redis.
Metadata
Metadata
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Done