When you uninstall an extension and reinstall, the new installation gets a new ID and is considered a new extension. So the data elements, etc not displaying is expected because this extension is a new one.
So yes, you shouldn't uninstall an extension unless you plan on getting rid of the extension and not using it anymore, because your work will be lost.
Page is implemented with rules because your web page has a link to a file that's hosted on Akamai. That file on Akamai is still hanging out and won't change until you do a new publish, so whatever you published most recently will continue to hang out and function on the page as it was before.
So if I have 100+ live rules/elements, and someone accidentaly uninstalls an Extension - even though I reinstall it - all those elements are now gone? I have to remake them all?
Surely I should be able to click into any element - regardless if its extension is installed or not, and be able to change details - especially in this case where I'd like to reassign the extension.
'So yes, you shouldn't uninstall an extension unless you plan on getting rid of the extension and not using it anymore, because your work will be lost.'
We uninstalled the extension as we were suddenly getting an error on build: "could not find extension for token::element::name".
Uninstalling the extension and remaking the elements fixed this yesterday, however today we've added new elements, clicked build, and we're now getting this error again.
This means we now have a bunch of elements and rules assigned to the first instance of Core extension (now uninstalled), and a bunch of new ones assigned to the reinstalled Core extension.
In regards to the extension uninstall/reinstall: Others will make this mistake as its too easy to do - and not letting the user access to element because the same extension now has a different ID seems crazy and will put many in bad positions.
Sorry for the confusion, I'll try to explain a bit about how the system works.
Every resource (data element, rule component, etc) has an identifier for it's parent, meaning, it knows which Extension provided it. The extension providing the resource (in this case the Core Extension) is identified by a unique ID. When you uninstalled the Core Extension, there was a warning message that said once you uninstalled it, any data elements or rules that were provided by the Extension would no longer be viewable or editable. This is because when you uninstall the extension, that unique ID is gone. All your data elements and rules point to a parent that no longer exists.
Because the parent no longer exists, Launch doesn't know which screens it should use to display those resources (the data element points to an ID that no longer exists, and since that ID no longer exists, we don't know that it needs to look at the Cookie data element - for example - type in order to know what to show in the view).
There are a couple things we're doing in the short-term improve the situation:
- We are updating the warning message when you uninstall to be even more explicit than it is now
- We are revamping the error messages in order to provide much more useful messages for build failures (among other things)
- We are investigating a possible issue inside the build process
In the future, I would also recommend disabling an extension rather than uninstalling it. Disabling it does not delete it's unique ID from the system, so all the data elements and rules that it is providing maintain their relationship to their parent. Uninstalling should only be used when you're planning on getting rid of the extension and all the things that rely on it.
1 person found this helpful
A suggested alternative to giving the user a warning and then allowing a user to proceed to F themselves...
Do not give some warning about how it will brick everything, and then allow for a user to proceed to brick everything. Make it impossible to uninstall an extension that is used in any data element, rule, etc., period.
If a user attempts to uninstall an extension that is used anywhere, Give a message saying they cannot uninstall it because it is in use; they need to remove all references to it before uninstalling it. The message would then provide a list of all data elements, rules, etc. (with links to navigate to) for every single reference of it.
Then, when the user removes reference of it in all places, the user can uninstall the extension.
My 2 cents, anyways.
Your suggested alternative is a good idea. It was discussed as part of the original development scope, but it's just a lot more work and we wanted to make delete available as quickly as possible (since so many people were asking for it). We may eventually do this as an enhancement to delete.
josh is 100% correct.
We made this 'mistake' on our client's UAT environment. But people WILL do this on a live account and there will be huge impacts.
Not being able to delete an extension until all its dependency's are removed seems the best idea to me.
My Adobe Launch Developer build was hanging for a while and wasn't being built without an error after I deleted the Core Extension (I like to stress test).
Error message was "core::domready::extension" wasn't detected.
I chose the function manually added the the "Core Extension" into my Adobe Launch build and that fixed it
Just sharing in case that helps.
You're saying you uninstalled your core extension and reinstalled it and your rules, data elements, etc that were using that extension are still working? This shouldn't be possible based not he current system so I'm just trying to clarify.
It is not possible, based on the context, I assumed it meant "removed it from my library" instead of "uninstalled".
@Jantzen, That's not what I'm saying.
Here's my repro steps:
1. Uninstalled Core
2. All old rules weren't working and build wasn't being built.
3. Reinstalled Core
4. Ran a new build for the new version of Core I installed. It failed.
5. **I then created all the replacement rules, adapters, environments, and clicked on build for dev, the Core Extension still wasn't automatically being added to the first dev build of the new rules, etc.
6. I then manually added the Core Extension into my dev build. And then all my new stuff was able to build a green build and I was able to finally see Adobe Analytics beacons.
I am saying I did have to make new rules, data elements, but when I went to build again, I was getting failed builds with error msgs like "core::domready::extension" because the Core Library was never included into the build.
As a user, I never saw how the "Core Extension" was added, so I made an assumption that it was maintained somehow within the tool without me having to do something.
That makes sense. And we'll be releasing a change soon so that when you try to build, if you haven't included the right extensions we'll detect that and offer to add them for you. Just saw that demoed on Wednesday.