In case someone else is caught out by this I thought I would post it up.
I have a membership site which has been upgraded from v4 to v6. Upgrade seemed to go fine and has been live for some time. Today a change was made to the member type and saved which resulted in the following exception:
No node exists with id '-133'
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: No node exists with id '-133'
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[ArgumentException: No node exists with id '-133']
umbraco.cms.businesslogic.CMSNode.setupNode() +274
umbraco.cms.businesslogic.datatype.DataTypeDefinition.setupNode() +34
umbraco.cms.businesslogic.CMSNode..ctor(Int32 Id) +36
umbraco.cms.businesslogic.datatype.<>c__DisplayClass3.<GetDataTypeDefinition>b__2() +25
Umbraco.Core.Cache.<>c__DisplayClass9`1.<GetCacheItem>b__8() +10
System.Lazy`1.CreateValue() +411
System.Lazy`1.LazyInitValue() +152
System.Lazy`1.get_Value() +75
Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey, Func`1 getCacheItem, Nullable`1 timeout, Boolean isSliding, CacheItemPriority priority, CacheItemRemovedCallback removedCallback, CacheDependency dependency) +950
Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey, Func`1 getCacheItem) +111
Umbraco.Core.Cache.CacheProviderExtensions.GetCacheItem(ICacheProvider provider, String cacheKey, Func`1 getCacheItem) +115
umbraco.cms.businesslogic.datatype.DataTypeDefinition.GetDataTypeDefinition(Int32 id) +175
umbraco.controls.GenericProperties.GenericProperty.UpdateInterface() +245
umbraco.controls.GenericProperties.GenericProperty.Page_Load(Object sender, EventArgs e) +36
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +95
System.Web.UI.Control.LoadRecursive() +59
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Control.LoadRecursive() +131
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678
After some digging I found that when saving the member type a bunch of new properties were added to address each of the following warnings found in the log:
2015-08-20 14:55:37,837 [12] WARN Umbraco.Core.Models.Member - [Thread 14] Trying to access the 'Comments' property on Umbraco.Core.Models.Member but the umbracoMemberComments property does not exist on the member type so a default value is returned. Ensure that you have a property type with alias: umbracoMemberComments configured on your member type in order to use the 'Comments' property on the model correctly.
2015-08-20 14:55:37,837 [12] WARN Umbraco.Core.Models.Member - [Thread 14] Trying to access the 'IsApproved' property on Umbraco.Core.Models.Member but the umbracoMemberApproved property does not exist on the member type so a default value is returned. Ensure that you have a property type with alias: umbracoMemberApproved configured on your member type in order to use the 'IsApproved' property on the model correctly.
2015-08-20 14:55:37,837 [12] WARN Umbraco.Core.Models.Member - [Thread 14] Trying to access the 'IsLockedOut' property on Umbraco.Core.Models.Member but the umbracoMemberLockedOut property does not exist on the member type so a default value is returned. Ensure that you have a property type with alias: umbracoMemberLockedOut configured on your member type in order to use the 'IsLockedOut' property on the model correctly.
2015-08-20 14:55:37,837 [12] WARN Umbraco.Core.Models.Member - [Thread 14] Trying to access the 'LastLoginDate' property on Umbraco.Core.Models.Member but the umbracoMemberLastLogin property does not exist on the member type so a default value is returned. Ensure that you have a property type with alias: umbracoMemberLastLogin configured on your member type in order to use the 'LastLoginDate' property on the model correctly.
2015-08-20 14:55:37,837 [12] WARN Umbraco.Core.Models.Member - [Thread 14] Trying to access the 'LastLoginDate' property on Umbraco.Core.Models.Member but the umbracoMemberLastLogin property does not exist on the member type so a default value is returned. Ensure that you have a property type with alias: umbracoMemberLastLogin configured on your member type in order to use the 'LastLoginDate' property on the model correctly.
2015-08-20 14:55:37,837 [12] WARN Umbraco.Core.Models.Member - [Thread 14] Trying to access the 'LastPasswordChangeDate' property on Umbraco.Core.Models.Member but the umbracoMemberLastPasswordChangeDate property does not exist on the member type so a default value is returned. Ensure that you have a property type with alias: umbracoMemberLastPasswordChangeDate configured on your member type in order to use the 'LastPasswordChangeDate' property on the model correctly.
2015-08-20 14:55:37,837 [12] WARN Umbraco.Core.Models.Member - [Thread 14] Trying to access the 'LastLockoutDate' property on Umbraco.Core.Models.Member but the umbracoMemberLastLockoutDate property does not exist on the member type so a default value is returned. Ensure that you have a property type with alias: umbracoMemberLastLockoutDate configured on your member type in order to use the 'LastLockoutDate' property on the model correctly.
Unfortunately when it created them it set the datatypeId to a non-existent datatype which I found in a different v7 install to be Umbraco.NoEdit. The following script rectified the problem setting the datatypeId to a label.
UPDATE cmsPropertyType
SET dataTypeId = - 92
WHERE (dataTypeId = - 133)
This may have been a result of something overlooked in the upgrade process or something documented that I was missed but at least it's fixable .
hit save
-- should see error
-- may need to restart app pool to get past it.
run this once working again-
SELECT TOP (200) pk, nodeId, dbType, propertyEditorAlias
FROM cmsDataType
--- delete node -133 using following sql in edit view of cmsDataType table
UPDATE cmsPropertyType
SET dataTypeId = - 92
WHERE (dataTypeId = - 133)
Update propertytypegroupid from null to 62 (new membership tab) using the following in edit view
SELECT TOP (1000) id, dataTypeId, contentTypeId, propertyTypeGroupId, Alias, Name, helpText, sortOrder, mandatory, validationRegExp, Description
FROM cmsPropertyType
WHERE (Alias LIKE '%member%')
ORDER BY contentTypeId
Potential knock on effect on logging in is as now users are not approved.
-- SQL approves all users. Run the following
UPDATE [ArenaUmbracoProUpgrade].[dbo].[cmsPropertyData]
SET dataInt = 1
where propertytypeid = 250
No node exists with id '-133' - Umbraco v6.2.5
In case someone else is caught out by this I thought I would post it up.
I have a membership site which has been upgraded from v4 to v6. Upgrade seemed to go fine and has been live for some time. Today a change was made to the member type and saved which resulted in the following exception:
After some digging I found that when saving the member type a bunch of new properties were added to address each of the following warnings found in the log:
Unfortunately when it created them it set the datatypeId to a non-existent datatype which I found in a different v7 install to be
Umbraco.NoEdit
. The following script rectified the problem setting the datatypeId to a label.This may have been a result of something overlooked in the upgrade process or something documented that I was missed but at least it's fixable .
SOLUTION...
add membership tab under customers member group
try and add new property.
-- Comments, umbracoMemberComments, textbox multiple, membership tab
hit save -- should see error -- may need to restart app pool to get past it.
run this once working again-
SELECT TOP (200) pk, nodeId, dbType, propertyEditorAlias FROM cmsDataType --- delete node -133 using following sql in edit view of cmsDataType table
UPDATE cmsPropertyType SET dataTypeId = - 92 WHERE (dataTypeId = - 133)
Update propertytypegroupid from null to 62 (new membership tab) using the following in edit view
SELECT TOP (1000) id, dataTypeId, contentTypeId, propertyTypeGroupId, Alias, Name, helpText, sortOrder, mandatory, validationRegExp, Description FROM cmsPropertyType WHERE (Alias LIKE '%member%') ORDER BY contentTypeId
Potential knock on effect on logging in is as now users are not approved.
-- SQL approves all users. Run the following
UPDATE [ArenaUmbracoProUpgrade].[dbo].[cmsPropertyData] SET dataInt = 1 where propertytypeid = 250
//250 - ismemberapproved
is working on a reply...