Type: System.Xml.XmlException
LineNumber: 383
LinePosition: 91
Message: '', hexadecimal value 0x15, is an invalid character. Line 383, position 91.
StackTrace:
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos, Char quoteChar, NodeData attr)
at System.Xml.XmlTextReaderImpl.ParseAttributes()
at System.Xml.XmlTextReaderImpl.ParseElement()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
at System.Xml.XmlDocument.Load(XmlReader reader)
at Microsoft.Dynamics.Nav.XmlMetadata.MetadataProvider.GetNavObjectAsXMLDocument(Int32 id, ObjectType navObjectType, Boolean lockObjectInTable)
at Microsoft.Dynamics.Nav.XmlMetadata.MetadataProvider.<>c__DisplayClass5.<GetTableMetadataWithExtensions>b__4()
Source: System.Xml
HResult: -2146232000
Type: System.NullReferenceException
Message: Object reference not set to an instance of an object.
StackTrace:
at Microsoft.Dynamics.Nav.XmlMetadata.MetadataProvider.<>c__DisplayClass5.<GetTableMetadataWithExtensions>b__4()
at Microsoft.Dynamics.Nav.Types.Cache.GlobalVersionCache`2.GetItem[TItem](TKey key, ObtainItem`1 obtainItem)
at Microsoft.Dynamics.Nav.XmlMetadata.MetadataProvider.GetTableMetadataWithExtensions(Int32 id, Boolean lockObjectInTable)
at Microsoft.Dynamics.Nav.XmlMetadata.MetadataProvider.GetBasicTableMetadata(Int32 id)
at Microsoft.Dynamics.Nav.Runtime.NCLMetaTable.LoadMetadata()
at Microsoft.Dynamics.Nav.Runtime.NCLMetaApplicationObject.Populate()
at Microsoft.Dynamics.Nav.Runtime.NCLMetadata.GetMetaApplicationObject(ObjectType objectType, Int32 objectId, Boolean requireCompiled)
at Microsoft.Dynamics.Nav.Runtime.NavSqlMetadata.GetTableChanges(NavDatabase tenantDatabase, Boolean sortingPropertiesChanged, Boolean databaseConvertedFromNav2013)
at Microsoft.Dynamics.Nav.Runtime.NavSqlDatabaseSync.SynchronizeTenantDatabase(NavDatabase tenantDatabase, Boolean enableLockTimeout)
at Microsoft.Dynamics.Nav.Runtime.NavDatabase.EnsureDatabaseInSync(Boolean enableLockTimeout)
at Microsoft.Dynamics.Nav.Runtime.NavUser.GetAllUsers(NavDatabase database)
at Microsoft.Dynamics.Nav.Runtime.NavUserCache.RefreshList()
at Microsoft.Dynamics.Nav.Runtime.NavUserCache.GetUser(Func`2 match)
at Microsoft.Dynamics.Nav.Runtime.NavUserCache.TryGetNavUserFromSid(String sid, NavUser& user)
at Microsoft.Dynamics.Nav.Runtime.NavUserAuthentication.InternalAuthenticate()
at Microsoft.Dynamics.Nav.Service.NSServiceBase.ValidateAndCreateSession(ConnectionRequest connectionRequest, Boolean requireNavUser)
at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.CreateNewSessionCombinator(ServiceOperation innerOperation, NSServiceBase serviceInstance, Boolean requireNavUser, Object[] inputs, Object[]& outputs)
Source: Microsoft.Dynamics.Nav.Ncl
HResult: -2147467261
So we install Version 36281 (Update Rollup 5) - database conversion is working without errorNote: Due to the problem described in the following blog post, please ensure you have platform build 36281 or later implemented:
Important Information: In a live database with active users connected, changing an object multiple times or compiling all objects can cause data loss in NAV 2013 R2
Due to this problem, update rollups 1 - 4 have been removed and the download link in this article points to update rollup 5.
Answers
This is an old well known issue.
Take a look at this link
https://blogs.msdn.microsoft.com/nav/2014/02/28/important-information-in-a-live-database-with-active-users-connected-changing-an-object-multiple-times-or-compiling-all-objects-can-cause-data-loss-in-nav-2013-r2/
This link explains the issue with an example
http://www.archerpoint.com/blog/Posts/microsoft-dynamics-nav-2013-r2-error-unable-verify-table-changes
In general do NOT use "Prevent data loss from table changes = No and then Compile without error" as it might delete all data from a table.
You have to run Synch-navtenant to fix the difference between SQL server and what is inNAV. Be very careful not to delete data from this table by doing this.
Update to CU6 at least, as soon as possible
I hope this helps.
I just tried :
restaure & convert db
start nav instance
and then :
Sync-navtenant instname
No error on all this steps
But on compilation still I have the error : table definition is invalid and cannot be validated
To Check which column has been deleted
-Go to NAV ADministratation shell
- Run the command "Sync-NAVTenant DynamcisNAV90 -Mode CheckOnly"
- If the changes are those which is not important for you compile the table and synchronize it with Force.
Zohaib Ahmed
Dynamics NAV ERP Technical Consultant.
please like / agree / verify my answer, if it was helpful for you. thanks.