diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1faee617b29..54035f8ab59 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@
- Fixed a bug where some blank user group and entry type values weren’t getting omitted from project config data. ([#16272](https://github.com/craftcms/cms/pull/16272), [#16273](https://github.com/craftcms/cms/pull/16273))
- Fixed a bug where pressing Return when a color text input within an editable table was focused was submitting the form rather than moving focus to the next row.
+- Fixed a JavaScript error that occurred on the Plugins index page, if there were any missing plugins associated with the Craft CMS license and no plugins were Composer-installed yet.
- Fixed a bug where custom fields would stay visible within Field Layout Designer field libraries when they didn’t match the search criteria, if they had previously been dragged. ([#16277](https://github.com/craftcms/cms/issues/16277))
## 5.5.5 - 2024-12-03
diff --git a/src/web/assets/plugins/dist/PluginManager.js b/src/web/assets/plugins/dist/PluginManager.js
index 77bdb246cfa..9fc29caf7f5 100644
--- a/src/web/assets/plugins/dist/PluginManager.js
+++ b/src/web/assets/plugins/dist/PluginManager.js
@@ -1,2 +1,2 @@
-!function(){var e={811:function(){},447:function(e,t,n){var i=n(811);i.__esModule&&(i=i.default),"string"==typeof i&&(i=[[e.id,i,""]]),i.locals&&(e.exports=i.locals),(0,n(673).Z)("7690077b",i,!0,{})},673:function(e,t,n){"use strict";function i(e,t){for(var n=[],i={},a=0;an.parts.length&&(i.parts.length=n.parts.length)}else{var r=[];for(a=0;a",{id:"plugins",class:"data fullwidth collapsible",html:""}),function(e){throw new TypeError('"$table" is read-only')}(),e("#no-plugins").replaceWith(i));var a=e("
").append(e("").append(e("",{class:"formsubmit",text:Craft.t("app","Install")})))))):e());Craft.initUiElements(a)}},{normalizeUserKey:function(e){return"string"!=typeof e||""===e?"":"$"===e[0]?e:e.replace(/.{4}/g,"$&-").substring(0,29).toUpperCase()}});var t=Garnish.Base.extend({manager:null,$row:null,$details:null,$keyContainer:null,$keyInput:null,$spinner:null,$buyBtn:null,handle:null,updateTimeout:null,init:function(e,t){this.manager=e,this.$row=t,this.$details=this.$row.find(".plugin-details"),this.$keyContainer=t.find(".license-key"),this.$keyInput=this.$keyContainer.find("input.text").removeAttr("readonly"),this.$buyBtn=this.$keyContainer.find(".btn"),this.$spinner=t.find(".spinner"),this.handle=this.$row.data("handle"),this.addListener(this.$keyInput,"focus","onKeyFocus"),this.addListener(this.$keyInput,"input","onKeyChange")},getKey:function(){return this.$keyInput.val().replace(/\-/g,"").toUpperCase()},onKeyFocus:function(){this.$keyInput.select()},onKeyChange:function(){this.updateTimeout&&clearTimeout(this.updateTimeout);var e=this.getKey();if(0===e.length||24===e.length||e.length>1&&"$"===e[0]){var t=Craft.PluginManager.normalizeUserKey(e);this.$keyInput.val(t),this.updateTimeout=setTimeout(this.updateLicenseStatus.bind(this),100)}},updateLicenseStatus:function(){var e=this;this.$spinner.removeClass("hidden");var t={handle:this.handle,key:this.getKey()};Craft.sendActionRequest("POST","app/update-plugin-license",{data:t}).then((function(){e.manager.getPluginLicenseInfo().then((function(t){e.$spinner.addClass("hidden"),e.update(t[e.handle])}))}))},update:function(t){var n=this.$row.find(".license-key-status");if("valid"==t.licenseKeyStatus||t.licenseIssues.length){var i=e("",{class:"license-key-status "+(0===t.licenseIssues.length?"valid":"")});n.length?n.replaceWith(i):i.appendTo(this.$row.find(".icon"))}else n.length&&n.remove();var a=this.$row.find(".edition");if(t.hasMultipleEditions||t.isTrial){var s=t.upgradeAvailable?e("",{href:Craft.getUrl("plugin-store/"+this.handle),class:"edition"}):e("",{class:"edition"});t.hasMultipleEditions&&e("",{class:"edition-name",text:t.edition}).appendTo(s),t.isTrial&&e("",{class:"edition-trial",text:Craft.t("app","Trial")}).appendTo(s),a.length?a.replaceWith(s):s.insertBefore(this.$row.find(".version"))}else a.length&&a.remove();var r=t.licenseKey||"unknown"!==t.licenseKeyStatus;if(r?(this.$keyContainer.removeClass("hidden"),t.licenseKey&&!this.$keyInput.val().match(/^\$/)&&this.$keyInput.val(Craft.PluginManager.normalizeUserKey(t.licenseKey))):this.$keyContainer.addClass("hidden"),r&&t.licenseIssues.length?this.$keyInput.addClass("error"):this.$keyInput.removeClass("error"),this.$row.find("p.error").remove(),t.licenseIssues.length){for(var l=e(),o=0;o'+Craft.t("app","Switch")+"";break;case"mismatched":d=Craft.t("app",'This license is tied to another Craft install. Visit {accountLink} to detach it, or buy a new license',{accountLink:'console.craftcms.com',buyUrl:Craft.getCpUrl("plugin-store/buy/".concat(this.handle,"/").concat(t.edition))});break;case"astray":d=Craft.t("app","This license isn’t allowed to run version {version}.",{version:t.version});break;case"required":d=Craft.t("app","A license key is required.");break;default:d=Craft.t("app","Your license key is invalid.")}var p=e("",{class:"error",html:d});if("wrong_edition"===t.licenseIssues[o]){var u=e("",{method:"post","accept-charset":"UTF-8"}).append(Craft.getCsrfInput()).append(e("",{type:"hidden",name:"action",value:"plugins/switch-edition"})).append(e("",{type:"hidden",name:"pluginHandle",value:this.handle})).append(e("",{type:"hidden",name:"edition",value:t.licensedEdition})).append(p);Craft.initUiElements(u),l=l.add(u)}else l=l.add(p)}l.appendTo(this.$details),Craft.initUiElements()}var c=this.$row.find(".expired");if(t.expired){var h=e("",{class:"warning with-icon expired",html:Craft.t("app","This license has expired.")+" "+Craft.t("app","Renew now for another year of updates.").replace("",'')});c.length?c.replaceWith(h):h.appendTo(this.$details)}"trial"===t.licenseKeyStatus?(this.$buyBtn.removeClass("hidden"),t.licenseIssues.length?this.$buyBtn.addClass("submit"):this.$buyBtn.removeClass("submit")):this.$buyBtn.addClass("hidden")}})}(jQuery)}()}();
+!function(){var e={811:function(){},447:function(e,t,n){var i=n(811);i.__esModule&&(i=i.default),"string"==typeof i&&(i=[[e.id,i,""]]),i.locals&&(e.exports=i.locals),(0,n(673).Z)("7690077b",i,!0,{})},673:function(e,t,n){"use strict";function i(e,t){for(var n=[],i={},a=0;an.parts.length&&(i.parts.length=n.parts.length)}else{var r=[];for(a=0;a",{id:"plugins",class:"data fullwidth collapsible",html:""}),e("#no-plugins").replaceWith(i));var a=e("