Skip to content

[BUG] EventBridge delivey to SQS fails #839

@RadekDvorak

Description

@RadekDvorak

Service

EventBridge

AWS API Action

PutEvents

Expected behavior

EventBridge delivers event to SQS

Actual behavior

The SQS is not found if run in eu-west-1. It works only if run in us-east-1.

EventBridge failed to deliver to target arn:aws:sqs:eu-west-1:000000000000:test-routing-queue: The specified queue does not exist.

Reproduction

#!/usr/bin/env bash
# Minimal reproducer for Floci EventBridge → SQS delivery bug.
#
# Tested against:
#   docker.io/localstack/localstack:4.6.0  → PASS
#   docker.io/floci/floci:1.5.15           → FAIL
#
# Usage: ./bin/floci-eventbridge-sqs-bugreport.sh <image> [region]
set -euo pipefail

IMAGE="${1:?Usage: $0 <image> [region]}"
CONTAINER_NAME="eb-bug-$$"
REGION="${2:-eu-west-1}"
ENDPOINT="http://localhost:4566"

export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION="${REGION}"
export AWS_ACCOUNT_ID="000000000000"
export AWS_PAGER=""

AWS="aws --output json --endpoint-url=${ENDPOINT} --region ${REGION}"

wait_for_ready() {
    local I=0
    while ! curl -sf "${ENDPOINT}/_localstack/health" > /dev/null 2>&1; do
        I=$(( I + 1 ))
        [[ "${I}" -ge 30 ]] && { echo "ERROR: not ready" >&2; return 1; }
        sleep 1
    done
}

cleanup() {
    docker logs "${CONTAINER_NAME}" || true
    docker stop "${CONTAINER_NAME}" > /dev/null 2>&1 || true
}
trap cleanup EXIT

docker run -d --rm \
    --name "${CONTAINER_NAME}" \
    -e SERVICES=sqs,events \
    -p 4566:4566 \
    "${IMAGE}"
wait_for_ready

${AWS} events create-event-bus --name "bug-bus"

QUEUE_URL=$( ${AWS} sqs create-queue --queue-name "bug-queue" | jq -r '.QueueUrl' )
QUEUE_ARN=$( ${AWS} sqs get-queue-attributes \
    --queue-url "${QUEUE_URL}" \
    --attribute-names QueueArn | jq -r '.Attributes.QueueArn' )

${AWS} events put-rule \
    --name "bug-rule" \
    --event-bus-name "bug-bus" \
    --event-pattern '{"detail":{"type":["test.event"]}}' \
    --state ENABLED

${AWS} events put-targets \
    --rule "bug-rule" \
    --event-bus-name "bug-bus" \
    --targets "Id=t1,Arn=${QUEUE_ARN}"

${AWS} events put-events --entries \
    "[{\"Source\":\"app\",\"DetailType\":\"T\",\"Detail\":\"{\\\"type\\\":\\\"test.event\\\"}\",\"EventBusName\":\"bug-bus\"}]"

MSG_COUNT=$( ${AWS} sqs receive-message \
    --queue-url "${QUEUE_URL}" \
    --max-number-of-messages 5 \
    --wait-time-seconds 10 \
    | jq '.Messages // [] | length' )

echo "RESULT image=${IMAGE} messages_in_sqs=${MSG_COUNT}"
[[ "${MSG_COUNT}" -gt 0 ]] && echo "PASS" || { echo "FAIL" >&2; exit 1; }

Environment

  • Floci version / image tag: 1.5.15
  • Java SDK version (if applicable):
  • How you're running Floci (Docker / native / mvn quarkus:dev): podman

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingsqs

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions