"Unsupported Media Type" when uploading uSync.Migrations.Packer_8.0.0
Hi @KevinJump
Thanks for the wonderful tool!
I am in the process of migrating an Umbraco 8 website using the uSkinned legacy theme to Umbraco 10/13 with the new uSkinned Site Builder.
To facilitate the migration, I installed uSync.Migrations.Packer_8.0.0 on the latest version of Umbraco 8 and successfully generated a migration ZIP file. However, when I attempt to upload this ZIP file to a fresh Umbraco 10 installation (with uSkinned Site Builder), the import process results in a blank screen, and I receive a 415 error in the browser console (screenshot attached).
Could you please advise on how to resolve this issue? Additionally, would a normal uSync import be a viable alternative in this case?
Looking forward to your guidance.
Hi, not sure if there is a conflict with uSkinned (I would doubt it). but might be worth checking for any web.config settings that remove the .zip mime-type? (even in .net core the web.config can sometimes be used)
e.g
Hi @KevinJump
thanks for looking into it.
We’re not using a web.config file because this is a fresh Umbraco 10 installation that includes uSkinned Site Builder.
I also tested a fresh Umbraco 10 installation without the uSkinned Site Builder, but the same error still occurs (415 error with validate api call). Specifically, the error appears when I upload the ZIP file that was generated from my Umbraco 8 application using uSync.Migrations.Packer_8.0.0.
Would it help to upload the v8 uSync source directly instead? I tried that, but after the validation step, nothing is imported. What might be causing this?
Would this process work if I used the normal uSync import approach (i.e., doing a clean export and then a full import)?
I’d really appreciate any guidance on how to resolve this issue. Thank you in advance!
🤔 . not sure what it might be then .
a uSync pack, isn't really much more than the uSync folder and a couple of the config files (speicifically its a merged grid.config of the site and any packages (almost always DocTypeGridEditor).
you could unzip the package manually, and put it in a folder (any folder really) on the site (inside e.g uSync/migrations). then you could create a new migration and point the usync and site folders to these two unzipped folders and everything 'should' work. (this is actually all the upload is doing).
Hi @KevinJump
Thanks for the guidance!
unzip in progress! (zip folder size is ~ 74MB)
then you could create a new migration and point the usync and site folders to these two unzipped folders and everything 'should' work.
only one doubt there , can you tell me what are the 2 unzipped folders there ? basically which folder should be assigned as the site folder ?
thanks in advance!
Hi,
so when you unzip the folder you should have a v8 and _sites folder (the v8 might be 'data'), then if in migrations. pick "select Source"
then you can select the folders
if the unzipped folders are somewhere beneath the uSync folder you should be able to browse them.
and it will look something like this
- the source zip folder can have any name, as long as its in usync you can browse to it.
Hi,
Everything is clear now—much appreciated! Thank you so much!
The unzip process is still in progress.
Hi @KevinJump ,
The validation works ! many thanks!
However , when we tried validating the content migration and saw that around 34093 passed and around 1312 failed (see the screenshot below).
All the failed content throw the following error:
System.Exception: Failed migrating [Umbraco.BlockList - resortsContent] : Object reference not set to an instance of an object.
---> System.NullReferenceException: Object reference not set to an instance of an object.
at uSync.Migrations.Migrators.Core.BlockListMigrator.MigratePropertiesWithin(SyncMigrationContext context, BlockListRowValue row)
at uSync.Migrations.Migrators.Core.BlockListMigrator.GetContentValue(SyncMigrationContentProperty contentProperty, SyncMigrationContext context)
at uSync.Migrations.Migrators.Core.BlockListMigrator.MigratePropertiesWithin(SyncMigrationContext context, BlockListRowValue row)
at uSync.Migrations.Migrators.Core.BlockListMigrator.GetContentValue(SyncMigrationContentProperty contentProperty, SyncMigrationContext context)
at uSync.Migrations.Core.Handlers.Shared.SharedContentBaseHandler1.MigrateContentValue(SyncMigrationContentProperty migrationProperty, SyncMigrationContext context) at uSync.Migrations.Core.Handlers.Shared.SharedContentBaseHandler1.ConvertPropertyValue(String itemType, String contentType, XElement property, SyncMigrationContext context)
--- End of inner exception stack trace ---
at uSync.Migrations.Core.Handlers.Shared.SharedContentBaseHandler1.ConvertPropertyValue(String itemType, String contentType, XElement property, SyncMigrationContext context) at uSync.Migrations.Core.Handlers.Shared.SharedContentBaseHandler1.MigrateFile(XElement source, Int32 level, SyncMigrationContext context)
at uSync.Migrations.Core.Handlers.MigrationHandlerBase`1.MigrateFolder(String folder, Int32 level, SyncMigrationContext context)
Could you help me with this?
I’d also like to hear your thoughts on migrating directly from v8 to v13. We can migrate users and members using uSync Complete, correct?
Hi, Its hard to spot but i think, this is probibly a missing content type. (we should have a better error), so for what ever reason the block is trying to be migrated to something that doesn't exist, I would take a look at the 'ResortsContent' content and see what it has in it.
My guess is something hasn't been created/identified about the content type it should have.
Migrating from v8 to v13 can be done directly if you don't have any unsupported elements (such as packages that don't run on v13, archetype, le blender, etc). because the grid and nested content are still supported by v13, you can in theory pick up the v8 uSync files and import them into a v13 site, and it will 'work' .
most of the conversion stuff uSync.Migrations is doing for v8 is either moving from grid to block, or nested content to blocklist, you don't have to to do that to run v13 (although you will have to convert to go beyond v13 as thats the last version to support them).
uSync complete - should pick your users and members up and let you import them into a v13 site too.
I would do all of this on a 'blank' v13 site and check it works before going near any site i don't want to have to restore from backup ever time i try it.
Hi @KevinJump
Thanks for the updates and really helpful!
I can see lot of occurrence with the following error inside umbraco logs
{"@t":"2025-03-02T12:28:15.1632891Z","@mt":"Error trying to migrate variant node values {editor}","@l":"Error","@x":"System.NullReferenceException: Object reference not set to an instance of an object.\r\n at uSync.Migrations.Migrators.Core.BlockListMigrator.MigratePropertiesWithin(SyncMigrationContext context, BlockListRowValue row)\r\n at uSync.Migrations.Migrators.Core.BlockListMigrator.GetContentValue(SyncMigrationContentProperty contentProperty, SyncMigrationContext context)\r\n at uSync.Migrations.Migrators.Core.BlockListMigrator.MigratePropertiesWithin(SyncMigrationContext context, BlockListRowValue row)\r\n at uSync.Migrations.Migrators.Core.BlockListMigrator.GetContentValue(SyncMigrationContentProperty contentProperty, SyncMigrationContext context)\r\n at uSync.Migrations.Core.Handlers.Shared.SharedContentBaseHandler`1.MigrateContentValue(SyncMigrationContentProperty migrationProperty, SyncMigrationContext context)\r\n at uSync.Migrations.Core.Handlers.Eight.ContentBaseMigrationHandler`1.ConvertPropertyValue(String itemType, String contentType, XElement property, SyncMigrationContext context)\r\n at uSync.Migrations.Core.Handlers.Shared.SharedContentBaseHandler`1.MigrateFile(XElement source, Int32 level, SyncMigrationContext context)\r\n at uSync.Migrations.Core.Handlers.MigrationHandlerBase`1.MigrateFolder(String folder, Int32 level, SyncMigrationContext context)","@tr":"bbdb403f4bdf951a0ee5760bfef7463e","@sp":"ab31914da231fcbb","editor":"Umbraco.BlockList","SourceContext":"uSync.Migrations.Core.Handlers.Eight.ContentMigrationHandler","ActionId":"68ff2190-d8f6-4ecd-87aa-2f5bac5d70b2","ActionName":"uSync.Migrations.Client.Controllers.uSyncMigrationsController.Migrate (uSync.Migrations.Client)","RequestId":"4000001e-0005-f100-b63f-84710c7967bb","RequestPath":"/umbraco/backoffice/api/usyncmigrations/Migrate","ProcessId":21432,"ProcessName":"iisexpress","ThreadId":63,"ApplicationId":"e46ce6bf6459aca1d816104d52be707d2a183687","MachineName":"27PC1","Log4NetLevel":"ERROR","HttpRequestId":"34d948d8-784e-4d87-8790-74e2b31b3e71","HttpRequestNumber":2,"HttpSessionId":"abe710fe-a45a-8fc7-4756-f6ce25d6e85c"}
{"@t":"2025-03-02T12:28:15.1642560Z","@mt":"Error while processing {file}","@l":"Error","@x":"System.NullReferenceException: Object reference not set to an instance of an object.\r\n at uSync.Migrations.Migrators.Core.BlockListMigrator.MigratePropertiesWithin(SyncMigrationContext context, BlockListRowValue row)\r\n at uSync.Migrations.Migrators.Core.BlockListMigrator.GetContentValue(SyncMigrationContentProperty contentProperty, SyncMigrationContext context)\r\n at uSync.Migrations.Migrators.Core.BlockListMigrator.MigratePropertiesWithin(SyncMigrationContext context, BlockListRowValue row)\r\n at uSync.Migrations.Migrators.Core.BlockListMigrator.GetContentValue(SyncMigrationContentProperty contentProperty, SyncMigrationContext context)\r\n at uSync.Migrations.Core.Handlers.Shared.SharedContentBaseHandler`1.MigrateContentValue(SyncMigrationContentProperty migrationProperty, SyncMigrationContext context)\r\n at uSync.Migrations.Core.Handlers.Eight.ContentBaseMigrationHandler`1.ConvertPropertyValue(String itemType, String contentType, XElement property, SyncMigrationContext context)\r\n at uSync.Migrations.Core.Handlers.Shared.SharedContentBaseHandler`1.MigrateFile(XElement source, Int32 level, SyncMigrationContext context)\r\n at uSync.Migrations.Core.Handlers.MigrationHandlerBase`1.MigrateFolder(String folder, Int32 level, SyncMigrationContext context)","@tr":"bbdb403f4bdf951a0ee5760bfef7463e","@sp":"ab31914da231fcbb","file":"D:\\Umbraco Projects\\V13\\uSync\\v8\\Content\\home.config","SourceContext":"uSync.Migrations.Core.Handlers.Eight.ContentMigrationHandler","ActionId":"68ff2190-d8f6-4ecd-87aa-2f5bac5d70b2","ActionName":"uSync.Migrations.Client.Controllers.uSyncMigrationsController.Migrate (uSync.Migrations.Client)","RequestId":"4000001e-0005-f100-b63f-84710c7967bb","RequestPath":"/umbraco/backoffice/api/usyncmigrations/Migrate","ProcessId":21432,"ProcessName":"iisexpress","ThreadId":63,"ApplicationId":"e46ce6bf6459aca1d816104d52be707d2a183687","MachineName":"27PC1","Log4NetLevel":"ERROR","HttpRequestId":"34d948d8-784e-4d87-8790-74e2b31b3e71","HttpRequestNumber":2,"HttpSessionId":"abe710fe-a45a-8fc7-4756-f6ce25d6e85c"}
"
Can you kindly help me identify the issue?
After running the migration, we got many warning as shown below
When I attempted to convert the data after that , the migrated folder is empty, leaving nothing to import. Did I miss a step in the process?
I would appreciate your guidance on this.