This exception will occur if we try to check in a new asset using 'checkinnew' REST API and include attributes like Content creator, Creator, Last content updated by or Last modifier etc. in the attributeValueList.
In platform, asset metadata is comprised of set of attributes which are classified in following three categories:
User Modifiable - Attributes whose value can be set by the end user. For example, Asset Name, Collection, Workflow etc.
Client Modifiable - Attributes whose value can only be set by the Clients invoking Server side APIs. In addition to web and desktop clients, this is also applicable to custom clients which can use this information as a hint to identify which attributes are allowed to be set. Some of such attributes are - Original file path, Checked out file path. These attributes are mainly used by client applications and hence it’s client responsibility to set accurate values for them. So in check-in dialog these attributes are pre-populated and disabled.
Server Modifiable - Attributes whose value can only be set by the Server. These attributes are also shown as disabled in the check-in dialog. For example, Content creator, Created, Last Modifier, Last Modified, Indexing Status etc. These are the attributes whose value is evaluated by the Server based on the business logic. Values of these attributes will be fixed what has been evaluated by the business logic and cannot be set randomly. For example, when the asset if checked-in by the user who is logged-on can only be the creator of that asset. User U1, when check-in the asset, cannot set the creator of asset as U2. Similarly Indexing status is set to complete only when the indexing is completed. And so on…
Considering these business rules and hence to prevent the wrong data being set - asset metadata is validated before persisting it to the database. If clients try to set server modifiable attributes, exception like 'ATTRIBUTE_SERVER_MODIFIABLE' is thrown by the Server. Thus, it is not at all allowed to modify these attributes.