{"record":{"id":"4dcc085814ac9a2e","repo":"hpyhacking/peatio","slug":"a-type-named-has-already-been-defined","errorCode":null,"errorMessage":"A type named '{}' has already been defined.","messagePattern":"A type named '(.+?)' has already been defined\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/assets/javascripts/lib/angular-ui-router.js","lineNumber":1319,"sourceCode":"  this.$get = ['$injector', function ($injector) {\n    injector = $injector;\n    enqueue = false;\n    UrlMatcher.prototype.$types = {};\n    flushTypeQueue();\n\n    forEach(defaultTypes, function(type, name) {\n      if (!UrlMatcher.prototype.$types[name]) UrlMatcher.prototype.$types[name] = new Type(type);\n    });\n    return this;\n  }];\n\n  // To ensure proper order of operations in object configuration, and to allow internal\n  // types to be overridden, `flushTypeQueue()` waits until `$urlMatcherFactory` is injected\n  // before actually wiring up and assigning type definitions\n  function flushTypeQueue() {\n    forEach(typeQueue, function(type) {\n      if (UrlMatcher.prototype.$types[type.name]) {\n        throw new Error(\"A type named '\" + type.name + \"' has already been defined.\");\n      }\n      var def = new Type(isInjectable(type.def) ? injector.invoke(type.def) : type.def);\n      UrlMatcher.prototype.$types[type.name] = def;\n    });\n  }\n}\n\n// Register as a provider so it's available to other providers\nangular.module('ui.router.util').provider('$urlMatcherFactory', $UrlMatcherFactory);\n\n/**\n * @ngdoc object\n * @name ui.router.router.$urlRouterProvider\n *\n * @requires ui.router.util.$urlMatcherFactoryProvider\n * @requires $locationProvider\n *\n * @description","sourceCodeStart":1301,"sourceCodeEnd":1337,"githubUrl":"https://github.com/hpyhacking/peatio/blob/dab8641137c008928c835409342519bfef4eae7f/app/assets/javascripts/lib/angular-ui-router.js#L1301-L1337","documentation":"Error \"A type named '{}' has already been defined.\" thrown in hpyhacking/peatio.","triggerScenarios":"Thrown at app/assets/javascripts/lib/angular-ui-router.js:1319 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Register each custom parameter type only once: guard the $urlMatcherFactory.type() call or choose a different, unused type name."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"dab8641137c008928c835409342519bfef4eae7f","analyzedAt":"2026-08-23T09:59:18.005Z","schemaVersion":2},"datasetVersion":"2026-08-23T13:39:53.451Z"}