Can not move any content with Courier 2.7.5. Bug or usage fault?
I can not move any content in my newly purchased and installed Courier version 2.7.5.
First I tried to move content from my old Umbraco versions 4.7.1.1 to my new and clean 6.0.3. Did not work.
After that I installed a fresh Umbraco 4.7.1.1 and tried to move som content into it. It did not work either. The error message is the same in both scenarios:
Error during packaging:
error:System.Collections.Generic.KeyNotFoundException:
The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at
Umbraco.Courier.ItemProviders.DocumentItemProvider.AvailableSystemItems(ItemIdentifier
itemId)
at
Umbraco.Courier.RepositoryProviders.Local.GetChildren(ItemIdentifier
itemID)
at
Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(ItemIdentifier
itemId, Boolean includeChildren, Int32 maxDependencyLevel)
at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(List`1
items, Int32 maximumDependencyLevel)
at
Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(RevisionManifest
manifest)
at Umbraco.Courier.Core.Tasks.PackagingTask.Run()
at Umbraco.Courier.Core.TaskManager.manageTask(IRevisionTask value)
10.04.2013 13:01:29
Is this due to a bug in Courier? Or have I just installed it incorrect? To me it seems like Courier doesn't work at all, (that is hard to believe for an Umbraco Pro product).
I will appreciate any hint on to what to do in order to move my content and media nodes :-)
Based on the error, I would guess that Courier cannot find the underlying database provider - nhibernate.
First of all, you need to turn on debugmode, this is done in /config/courier.config file, reload the app pool after the config change.
On app start, courier tries to load all its needed depedencies, and if there is an error duing this time, it will be logged in the log files in /app_data/courier/logs/
Usually you will see an exception saying that it could not load umbraco.courier.persistence.*.dll or one of its dependencies.
---
So, check logs first, then we should be closer to a solution
11.04.2013 09:15:53; Can't import provider 'Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider' id: e0474ca8-e73b-11df-9492-0800200c9a66: System.NullReferenceException: Object reference not set to an instance of an object. at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider.CreateSessionFactory(ConnectionStringSettings conn) in c:\Program Files (x86)\teamcity\buildAgent\work\650bafc4b83aa858\Core\Umbraco.Courier.Persistence.V6.NHibernate\NHibernate.cs:line 249 at Umbraco.Courier.Core.ProviderCollection`1.registerProviders(IEnumerable`1 types) 11.04.2013 09:16:21; Can't import provider 'Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider' id: e0474ca8-e73b-11df-9492-0800200c9a66: System.NullReferenceException: Object reference not set to an instance of an object. at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider.CreateSessionFactory(ConnectionStringSettings conn) in c:\Program Files (x86)\teamcity\buildAgent\work\650bafc4b83aa858\Core\Umbraco.Courier.Persistence.V6.NHibernate\NHibernate.cs:line 249 at Umbraco.Courier.Core.ProviderCollection`1.registerProviders(IEnumerable`1 types) 11.04.2013 09:17:27; System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Umbraco.Courier.ItemProviders.DocumentItemProvider.AvailableSystemItems(ItemIdentifier itemId) at Umbraco.Courier.RepositoryProviders.Local.GetChildren(ItemIdentifier itemID) at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(ItemIdentifier itemId, Boolean includeChildren, Int32 maxDependencyLevel) at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(List`1 items, Int32 maximumDependencyLevel) at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(RevisionManifest manifest) at Umbraco.Courier.Core.Tasks.PackagingTask.Run() at Umbraco.Courier.Core.TaskManager.manageTask(IRevisionTask value)
Can you verify you have installed the v6 Courier package for umbraco 6.* if that's what you're running? If looks like it can't find the v6 nHibernate files:
Make sure you have the right versions of Courier running. That was my mistake too. There is a Courier for Umbraco V6 and there is one for Umbraco 4. Install them as a local package to make sure the correct ones are installed.
I needed to install Courer 2 as a local package. (Even as the Courier documentation says to use the Umbraco internal package repository.)
I always thought the Umbraco Package repository inside Umbraco always made sure that the packages listed was compatible with my running version of Umbraco. Obviously this is not the case.
Using the version you recommended, Robin, I was able to move content flawlessly between my two installations of 4.7.1.1.
(However moving content between 4.7.1.1 and 6.0.3 did not run quite so smooth, but thats understandable)
Can not move any content with Courier 2.7.5. Bug or usage fault?
I can not move any content in my newly purchased and installed Courier version 2.7.5.
First I tried to move content from my old Umbraco versions 4.7.1.1 to my new and clean 6.0.3. Did not work.
After that I installed a fresh Umbraco 4.7.1.1 and tried to move som content into it. It did not work either. The error message is the same in both scenarios:
Error during packaging:
error:System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Umbraco.Courier.ItemProviders.DocumentItemProvider.AvailableSystemItems(ItemIdentifier itemId) at Umbraco.Courier.RepositoryProviders.Local.GetChildren(ItemIdentifier itemID) at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(ItemIdentifier itemId, Boolean includeChildren, Int32 maxDependencyLevel) at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(List`1 items, Int32 maximumDependencyLevel) at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(RevisionManifest manifest) at Umbraco.Courier.Core.Tasks.PackagingTask.Run() at Umbraco.Courier.Core.TaskManager.manageTask(IRevisionTask value) 10.04.2013 13:01:29
Is this due to a bug in Courier?
Or have I just installed it incorrect? To me it seems like Courier doesn't work at all, (that is hard to believe for an Umbraco Pro product).
I will appreciate any hint on to what to do in order to move my content and media nodes :-)
Hi Chris
Based on the error, I would guess that Courier cannot find the underlying database provider - nhibernate.
First of all, you need to turn on debugmode, this is done in /config/courier.config file, reload the app pool after the config change.
On app start, courier tries to load all its needed depedencies, and if there is an error duing this time, it will be logged in the log files in /app_data/courier/logs/
Usually you will see an exception saying that it could not load umbraco.courier.persistence.*.dll or one of its dependencies.
---
So, check logs first, then we should be closer to a solution
Hi Per, thanks you for your reply :)
I've enabled the debug output in courier. I get the following debug output:
File log_timer.csv:
'Loading factory',2
'Loading factory',3
File log_Debug.txt:
11.04.2013 09:15:53; loading session factory
11.04.2013 09:16:21; loading session factory
File log_Error.txt:
11.04.2013 09:15:53; Can't import provider 'Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider' id: e0474ca8-e73b-11df-9492-0800200c9a66: System.NullReferenceException: Object reference not set to an instance of an object.
at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider.CreateSessionFactory(ConnectionStringSettings conn) in c:\Program Files (x86)\teamcity\buildAgent\work\650bafc4b83aa858\Core\Umbraco.Courier.Persistence.V6.NHibernate\NHibernate.cs:line 249
at Umbraco.Courier.Core.ProviderCollection`1.registerProviders(IEnumerable`1 types)
11.04.2013 09:16:21; Can't import provider 'Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider' id: e0474ca8-e73b-11df-9492-0800200c9a66: System.NullReferenceException: Object reference not set to an instance of an object.
at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider.CreateSessionFactory(ConnectionStringSettings conn) in c:\Program Files (x86)\teamcity\buildAgent\work\650bafc4b83aa858\Core\Umbraco.Courier.Persistence.V6.NHibernate\NHibernate.cs:line 249
at Umbraco.Courier.Core.ProviderCollection`1.registerProviders(IEnumerable`1 types)
11.04.2013 09:17:27; System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Umbraco.Courier.ItemProviders.DocumentItemProvider.AvailableSystemItems(ItemIdentifier itemId)
at Umbraco.Courier.RepositoryProviders.Local.GetChildren(ItemIdentifier itemID)
at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(ItemIdentifier itemId, Boolean includeChildren, Int32 maxDependencyLevel)
at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(List`1 items, Int32 maximumDependencyLevel)
at Umbraco.Courier.Core.Packaging.RevisionPackaging.AddToQueue(RevisionManifest manifest)
at Umbraco.Courier.Core.Tasks.PackagingTask.Run()
at Umbraco.Courier.Core.TaskManager.manageTask(IRevisionTask value)
Hi Chris -
Can you verify you have installed the v6 Courier package for umbraco 6.* if that's what you're running? If looks like it can't find the v6 nHibernate files:
Can't import provider 'Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider'
-Paul
Yes, that would probably be correct. It is Courier 2.7.5.
In Umbraco - I did only open the package repository and hit install.
Was I supposed to find a different version of Courier for my Umbraco 4.7.1.1 installation? If so, where can I find the right version of Courier?
Make sure you have the right versions of Courier running. That was my mistake too. There is a Courier for Umbraco V6 and there is one for Umbraco 4. Install them as a local package to make sure the correct ones are installed.
http://our.umbraco.org/projects/umbraco-pro/umbraco-courier-2
You are absolutely right!
I needed to install Courer 2 as a local package. (Even as the Courier documentation says to use the Umbraco internal package repository.)
I always thought the Umbraco Package repository inside Umbraco always made sure that the packages listed was compatible with my running version of Umbraco. Obviously this is not the case.
Using the version you recommended, Robin, I was able to move content flawlessly between my two installations of 4.7.1.1.
(However moving content between 4.7.1.1 and 6.0.3 did not run quite so smooth, but thats understandable)
is working on a reply...