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]

Reply via email to