Here is a strange situation. Following code works perfectly if I run it as is, but if I comment the first CHARINDEX line, it throws an error.
Msg 536, Level 16, State 4, Line 1 Invalid length parameter passed to the RIGHT function.
SELECT
DT.DataID
,RIGHT(K.IniValue, LEN( K.IniValue ) - 15)
--error if you comment the next line
,CHARINDEX('}',SUBSTRING(K.IniValue,CHARINDEX('ExtShared',K.IniValue) + 12,LEN(K.IniValue))) AS LastPosition
,REPLACE( CONCAT( REPLACE( RIGHT(K.IniValue, LEN( K.IniValue ) - 15), '''}', '' ), SUBSTRING( P.providerData, CHARINDEX( '''providerInfo''=''', P.providerData ) + 16, CHARINDEX( ''',''storage', P.providerData ) - ( CHARINDEX( '''providerInfo''=''', P.providerData ) + 16 ))), '\\', '\' )
FROM llprod.DTreeCore AS DT
INNER JOIN llprod.DVersData AS DV ON DV.DocID = DT.DataID AND DT.VersionNum = DV.Version
INNER JOIN llprod.ProviderData AS P ON DV.ProviderId = P.providerID
INNER JOIN llprod.KIni AS K ON K.IniKeyword = P.providerType
--WHERE ( k.IniValue LIKE '%{%' and K.IniValue LIKE '%}%' AND k.IniValue LIKE '%ExtShared%')
WHERE DT.DataiD = 123456
OPTION (RECOMPILE)