I just managed to recreate this on a new platform I've just built while setting up LDAP sync. 9.4M4 with EG7.13 on Linux. I'm recording the solution here so people can find it while googling for it. The solution for this is that while EG says it's the %temp% file that the user doesn't have access to, it's actually the real/server file system that there's no access. I created the original file as sasdemo_cod which had 644 permission in Linux. I ended up deleting that user from metadata and switched to sasdemo_prod in EG. I triggered the error trying to save it. On the filesystem, I changed it to 666, removed the file from the project, added it back, and all was well. The evidence can be shown in the EG log while set to debug (excerpt pasted below). Cheers, David. 2018-02-07 13:56:14,937 [Main] DEBUG SAS.EG.SDS.Model.Creator [(null)] - Leave: CreateFile(). Successfully found file "LDAPsync.sas" 2018-02-07 13:56:14,937 [Main] DEBUG SAS.EG.ProjectElements.LinkedFile [(null)] - Attempting to Cache LinkedFile "/sasconfig/meta/Lev3/SASMeta/SASEnvironment/SASCode/Jobs/LDAPsync.sas" with mode 6 and local extension ".sas". 2018-02-07 13:56:14,937 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - InvokeMethod::AssignFileref 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Creating object 0x11. 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - IFileref::Represents an assigned fileref in the associated SAS Workspace. 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Adding to VTBL::Parent(7,3), 1 parameters 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Adding to VTBL::FilerefName(8,4), 1 parameters 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Adding to VTBL::OpenTextStream(9,5), 3 parameters 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Adding to VTBL::OpenBinaryStream(10,6), 2 parameters 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Adding to VTBL::OpenTranscodedBinaryStream(11,7), 4 parameters 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Adding to VTBL::ListMembers(12,8), 5 parameters 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Adding to VTBL::AssignMember(13,9), 6 parameters 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Adding to VTBL::DeleteFile(14,10), 0 parameters 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Leaving for AssignFileref 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - InvokeMethod::OpenTextStream 2018-02-07 13:56:14,952 [Main] INFO SAS.BI.SASComb [(null)] - Error received from SAS:-1:4a661191-a58f-11d2-b95d-00c04f81bc00-<?xml version="1.0" ?><Exceptions><Exception><SASMessage severity="Error">Insufficient authorization to access /sasconfig/meta/Lev3/SASMeta/SASEnvironment/SASCode/Jobs/LDAPsync.sas.</SASMessage></Exception></Exceptions>-0-00000000-0000-0000-0000-000000000000-SAS.Fileref 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Leaving for OpenTextStream 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - InvokeMethod::DeassignFileref 2018-02-07 13:56:14,952 [Main] DEBUG SAS.BI.SASComb.Method [(null)] - Leaving for DeassignFileref 2018-02-07 13:56:14,952 [Main] DEBUG SAS.EG.ProjectElements.LinkedFile [(null)] - Exception occurred when attempting to Cache LinkedFile. SAS.EG.SDS.SDSException: <?xml version="1.0" ?><Exceptions><Exception><SASMessage severity="Error">Insufficient authorization to access /sasconfig/meta/Lev3/SASMeta/SASEnvironment/SASCode/Jobs/LDAPsync.sas.</SASMessage></Exception></Exceptions> ---> System.Runtime.InteropServices.COMException: <?xml version="1.0" ?><Exceptions><Exception><SASMessage severity="Error">Insufficient authorization to access /sasconfig/meta/Lev3/SASMeta/SASEnvironment/SASCode/Jobs/LDAPsync.sas.</SASMessage></Exception></Exceptions> at SAS.IFileref.OpenTextStream(StreamOpenMode Mode, Int32 MaxLineLength) at SAS.EG.SDS.Model.SASTextTransfer.GetFile(String remotePath, String localPath, eAccessMode mode) --- End of inner exception stack trace --- at SAS.EG.SDS.Model.SASTextTransfer.GetFile(String remotePath, String localPath, eAccessMode mode) at SAS.EG.SDS.Model.SASFileService.GetFile(String remotePath, String localPath, eAccessMode mode) at SAS.EG.SDS.Model.File.Cache(eAccessMode mode, eExtensionOption extFlag, String extension) at SAS.EG.ProjectElements.LinkedFile.Cache()
... View more