Unable to update the changes using OData Service.

An error occurred while processing this request.

Storage not available: No Data Access Object Factory for defaultFile. Check if the default file system is properly defined and ItemTypes defaultStorageId is correct.

I am using a DXA java application. I have XPM up and able to edit a Component but I am not able to update preview. I have the XPM webservice configured and the XPM web application is separate from the staging website.

  • First verify your storage.config file of OData as this error usually comes when there is an issue with file.
    – Nash
    Commented Sep 3, 2015 at 9:39

3 Answers 3


It seems that the issue is on your cd_storage_conf.xml. It contains a defaultFile element but probably has no physical path set.

I suspect that you are pointing to a defaultFile location in an item type, i.e:

<Item typeMapping="Page" cached="false" storageId="defaultFile" />

but then there is no mapping to the physical location of the defaultFile.

If you check the standard cd_storage_conf.xml you will see this section

<Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="defaultFile" defaultFilesystem="false" >
    <Root Path="c:\temp" />

please ensure that this is present.

Besides this, it could be that the same is missing for the defaultStorageId location, where you might have this part:

<ItemTypes defaultStorageId="defaultDataFile" cached="false">

but missing again the physical path to this defaultStorageId.

  • Thank you. That was it. I had commented the storage filesystem in the XPM webservice cd_storage_conf.xml.
    – Rache
    Commented Sep 9, 2015 at 9:03

For DXA you should use database storage for every item as described in our documentation (here http://docs.sdl.com/LiveContent/content/en-US/SDL%20DXA-v2/GUID-6D3337B6-FC47-479A-A38B-6AF3C53B9A51), so also your odata service should use this, in its cd_storage_conf.xml you need to specify that all Item Types will be stored in the database:

  <ItemTypes defaultStorageId="defaultdb" cached="false">

If your storage configuration is correct (which it probably is not, see the two previous answers) this can be a problem with a missing or invalid license file (causing the storage subsystem to fall back to using file storage instead of database storage without throwing an error).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.