Skip to content

Sink to S3 Table not writing rows #23584

@jackdermer

Description

@jackdermer

Describe the bug

I am looking to sink data from a materialized view out an S3 Table. I am using the following to create this sink.

CREATE SINK my_sink AS SELECT * FROM all_events 
     WITH (
    connector = 'iceberg',
    type = 'append-only',
    warehouse.path = 'arn:aws:s3tables:us-east-1:XXX:bucket/s3-table-bucket',
    enable_config_load = 'true',
    s3.region = 'us-east-1',
    catalog.type = 'rest',
    catalog.uri = 'https://s3tables.us-east-1.amazonaws.com/iceberg',
    catalog.rest.signing_region = 'us-east-1',
    catalog.rest.sigv4_enabled = true,
    catalog.rest.signing_name = 's3tables',
    table.name = 'jack_s3_table_1b',
    database.name = 'jack_db',
    create_table_if_not_exists = true
);

The role used has Admin access to the AWS account. This runs successfully and created the S3Table but no inserts are made. I also tried doing enable_config_load = false and providing the secret key for an admin user but got the same issue.

Error message/log

In the logs I am seeing the following error:


2025-10-24T19:57:33.16576427Z  WARN actor{otel.name="Actor 796" actor_id=796 prev_epoch=9443780263477248 curr_epoch=9443780328947712}:executor{otel.name="Sink 31C00000001"}: risingwave_stream::executor::sink: reset log reader stream successfully after sink error error=Iceberg error: Unexpected => Failed to close parquet writer., source: External: Unexpected => Failure in doing io operation, source: PermissionDenied (persistent) at Writer::close, context: { uri: https://s3.us-east-1.amazonaws.com/7bc39b77-5201-4990-sqr8oy6rgdgjiiwusou5rp8ihy8iyuse1b--table-s3/data/796-00000-019a17cb-1898-7751-b70f-93064f40565f.parquet, response: Parts { status: 403, version: HTTP/1.1, headers: {"x-amz-request-id": "XXXX", "x-amz-id-2": "XXXX", "content-type": "application/xml", "transfer-encoding": "chunked", "date": "Fri, 24 Oct 2025 19:56:18 GMT", "connection": "close", "server": "AmazonS3"} }, service: s3, path: data/796-00000-019a17cb-1898-7751-b70f-93064f40565f.parquet, written: 7518 } => S3Error { code: "AccessDenied", message: "Access Denied", resource: "", request_id: "NWJ8M9QMG6CRFMM8" } executor_id=3418793967617 sink_id=7491

To Reproduce

I am following this doc exactly. See Sink creation statement above.

Expected behavior

I expect rows to sync from Rising Wave the S3Table.

How did you deploy RisingWave?

No response

The version of RisingWave

13.14.0-RisingWave-2.6.0

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    type/bugType: Bug. Only for issues.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions