When we were migrating from Sitecore 8.2 to 9.1.1 we found the following exception in our AppInsights Logs.
Also, non-admin users were reporting that they would receive a fatal error that looks like the following:

We weren’t sure what was happening but in the logs, we saw that it was being triggered during Item Locking and Indexing.
After some research, it was apparent that this was being caused by invalid XML in the lock field. Which looks like this

This issue can appear in the Sitecore logs in the following ways:

Error 1:
416 16:06:36 ERROR First 200 characters: >

Error 2:
416 16:06:36 ERROR Call stack: at Sitecore.MainUtil.GetCallStack() at Sitecore.Xml.XmlUtil.LoadXml(String xml) at Sitecore.Data.Locking.ItemLocking.GetLockField() at Sitecore.Data.Locking.ItemLocking.GetOwner() at Sitecore.ContentSearch.ComputedFields.ParsedLockOwner.ComputeFieldValue(IIndexable indexable) at Sitecore.ContentSearch.AbstractDocumentBuilder`1.<>c__DisplayClass57_0.<AddComputedIndexFieldsInParallel>b__0(IComputedIndexField computedIndexField, ParallelLoopState parallelLoopState) at System.Threading.Tasks.Parallel.<>c__DisplayClass42_0`2.<PartitionerForEachWorker>b__1() at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object ) at System.Threading.Tasks.Task.Execute() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at System.Threading.ThreadPoolWorkQueue.Dispatch()

Error 3:
10144 16:06:36 ERROR Attempted to load invalid xml. Exception: System.Xml.XmlException Message: Data at the root level is invalid. Line 1, position 1. Source: System.Xml at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) at System.Xml.XmlDocument.LoadXml(String xml) at Sitecore.Xml.XmlUtil.LoadXml(String xml)

Solution:
We knew that we needed to find out how many and which Sitecore Items had this issue so that we could go and fix them through the Content Editor.  We decided that SQL was out best shot!

Run the following query in your Master database. The query returns the list of Items that have Invalid XML in the __Lock Field

SELECT TOP (1000) [Id]
,[ItemId]
,(select Name from Items where FieldId = ID) as FieldName
,[Value]
,[Created]
,[Updated]
FROM [Fields]
where [Value] = '>' or [Value] = '<'

In my case, it returned 1 record in the master database for the __lock field.

I then use the content editor and searched for the Item that was affected, and cleared out the lock field, as an admin of course! One its cleared out make sure you save and publish.

If you are still receiving the error after clearing the fields, execute the same query on the VersionedFields and the SharedFields Table:

SELECT TOP 100 ItemId,(select Name from Items where FieldId = ID) as FieldName, LEN([Value]) as 'Length'
FROM [VersionedFields]
where ([Value] like '<%' or [Value] like '<' or [Value] like '%<')
Order by [Length]

SELECT TOP 100 ItemId,(select Name from Items where FieldId = ID) as FieldName, LEN([Value]) as 'Length'
FROM [SharedFields]
where ([Value] like '<%' or [Value] like '<' or [Value] like '%<')
Order by [Length]

Hopefully, this helps!