dongsupkim-onepredict opened a new issue, #2546: URL: https://github.com/apache/polaris/issues/2546
### Describe the bug Polaris version: 1.1.0 When trying to update the catalog storageConfigInfo via the /api/management/v1/catalogs/catalog_name PUT endpoint, it requires roleArn to be included (error: MismatchedInputException: Missing required creator property 'roleArn'). However, when roleArn is included, the following error occurs: Cannot modify Role ARN in storage config from AwsStorageConfigurationInfo As a result, the update cannot be performed. ### To Reproduce ``` import requests management_url = "http://polaris.polaris.svc:8181/api/management/v1" headers = { "Content-Type": "application/json", "Polaris-Realm": "test", "Authorization": f"Bearer {access_token}", } catalog_name = "test_catalog" update_payload = { "currentEntityVersion": 1, "storageConfigInfo": { "endpoint": "http://rook-ceph-rgw-ceph-object-store.rook-ceph.svc", "endpointInternal": "http://rook-ceph-rgw-ceph-object-store.rook-ceph.svc", "pathStyleAccess": True, "storageType": "S3", "roleArn": "arn:aws:iam::123456789012:role/polaris-s3-role", # issue happens here. }, } try: response = requests.put( f"{management_url}/catalogs/{catalog_name}", headers=headers, json=update_payload, verify=False, timeout=10, ) print(f"Status Code: {response.status_code}") print(f"Response Headers: {dict(response.headers)}") print(f"Response Text: {response.text}") if response.status_code == 200: try: result = response.json() except requests.exceptions.JSONDecodeError as e: print(f"{e}") print(f"{response.text}") else: print(f"{response.status_code}") print(f"{response.text}") except requests.exceptions.RequestException as e: print(f"{e}") ``` ### Actual Behavior ``` 2025-09-11 11:31:50,072 DEBUG [org.apa.pol.ser.exc.IcebergExceptionMapper] [,test] [,,,] (executor-thread-3) Full RuntimeException: org.apache.iceberg.exceptions.BadRequestException: Cannot modify Role ARN in storage config from AwsStorageConfigurationInfo{storageType=S3, storageType=S3, roleARN=arn:aws:iam::000000000000:role/cephs3-polaris-role, userARN=null, externalId=null, allowedLocation=[s3://polaris-storage/*, s3://polaris-storage/test_catalog], region=null} to AwsStorageConfigurationInfo{storageType=S3, storageType=S3, roleARN=arn:aws:iam::123456789012:role/polaris-s3-role, userARN=null, externalId=null, allowedLocation=[s3://polaris-storage/test_catalog], region=null} at org.apache.polaris.service.admin.PolarisAdminService.validateUpdateCatalogDiffOrThrow(PolarisAdminService.java:835) at org.apache.polaris.service.admin.PolarisAdminService.updateCatalog(PolarisAdminService.java:905) at org.apache.polaris.service.admin.PolarisServiceImpl.updateCatalog(PolarisServiceImpl.java:224) at org.apache.polaris.service.admin.PolarisServiceImpl_ClientProxy.updateCatalog(Unknown Source) ... ``` ### Expected Behavior # It should be updated correctly ### Additional context _No response_ ### System information Polaris Catalog version: 1.1.0(docker latest image) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
