{"action":"created","issue":{"url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/980","labels_url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/980/labels{/name}","comments_url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/980/comments","events_url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/980/events","html_url":"https://github.com/rubberduck-vba/Rubberduck/issues/980","id":129576252,"number":980,"title":"RubberDuck should warn about ghost projects","user":{"login":"ThunderFrame","id":16574009,"avatar_url":"https://avatars.githubusercontent.com/u/16574009?v=3","gravatar_id":"","url":"https://api.github.com/users/ThunderFrame","html_url":"https://github.com/ThunderFrame","followers_url":"https://api.github.com/users/ThunderFrame/followers","following_url":"https://api.github.com/users/ThunderFrame/following{/other_user}","gists_url":"https://api.github.com/users/ThunderFrame/gists{/gist_id}","starred_url":"https://api.github.com/users/ThunderFrame/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ThunderFrame/subscriptions","organizations_url":"https://api.github.com/users/ThunderFrame/orgs","repos_url":"https://api.github.com/users/ThunderFrame/repos","events_url":"https://api.github.com/users/ThunderFrame/events{/privacy}","received_events_url":"https://api.github.com/users/ThunderFrame/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-28T20:46:23Z","updated_at":"2016-01-28T20:52:48Z","closed_at":null,"body":"The VBIDE sometimes persists a project, even after the host document is closed. That *sometimes* results in what appears to be duplicate projects, if a workbook/project with the same name (but not necessarily the same path) is subsequently opened. That can lead to confusion about which project is real, and which is a \"ghost\". Iirc, changes to a ghost project aren't saved when you press Ctrl-S in the VBE. Typically, the host application must be restarted to remedy the problem.\r\n\r\nThis ghosting issue seems to be caused by host application COM addins, that appear not to release a pointer to the project's host file. For example, in my Excel 2010, the PowerQuery COM Add-In causes this behaviour in VBE, but the problem goes away after I disable PowerQuery.\r\n\r\nRubberDuck could address this VBE deficiency, and warn when there are ghost projects, and/or when a save won't actually save."},"comment":{"url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/comments/176410727","html_url":"https://github.com/rubberduck-vba/Rubberduck/issues/980#issuecomment-176410727","issue_url":"https://api.github.com/repos/rubberduck-vba/Rubberduck/issues/980","id":176410727,"user":{"login":"retailcoder","id":5751684,"avatar_url":"https://avatars.githubusercontent.com/u/5751684?v=3","gravatar_id":"","url":"https://api.github.com/users/retailcoder","html_url":"https://github.com/retailcoder","followers_url":"https://api.github.com/users/retailcoder/followers","following_url":"https://api.github.com/users/retailcoder/following{/other_user}","gists_url":"https://api.github.com/users/retailcoder/gists{/gist_id}","starred_url":"https://api.github.com/users/retailcoder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/retailcoder/subscriptions","organizations_url":"https://api.github.com/users/retailcoder/orgs","repos_url":"https://api.github.com/users/retailcoder/repos","events_url":"https://api.github.com/users/retailcoder/events{/privacy}","received_events_url":"https://api.github.com/users/retailcoder/received_events","type":"User","site_admin":false},"created_at":"2016-01-28T20:52:48Z","updated_at":"2016-01-28T20:52:48Z","body":"The irony? Current state of 2.0 is that closing the current project and opening a new one will send everything up in flames. That will definitely be fixed though.\r\n\r\nThe problem is that, accessing a project that's *not really there* will throw a `COMException` - but we can't presume we're getting a `COMException` for that reason... a `COMException` basically means \"something isn't right\", but there's no telling exactly *what* is wrong. So we'll swallow it and pretend it never happened. Or we can show some meaningless error message to the user, and then get support tickets for things we can't fix."}}