Skip to content

[Bug] Transition to same route without parameters creates error Uncaught TypeError: routeInfos[(routeInfoLength - 1)] is undefined when a queryParam has default value null #20701

@mkszepp

Description

@mkszepp

🐞 Describe the Bug

When adding a transitionTo on higher router we get error Uncaught TypeError: routeInfos[(routeInfoLength - 1)] is undefined.

The error occures, when the default value from queryParameter is null.

grafik

🔬 Minimal Reproduction

Example repo: https://github.com/mkszepp/ember-transition-bug

Create a new app with route named base and copy this code parts.

// routes/application.js
import Route from '@ember/routing/route';
import { service } from '@ember/service';

export default class ApplicationRoute extends Route {
  @service router;
  redirect() {
    super.redirect(...arguments);
    this.router.transitionTo('base');
  }
}
// controllers/base.js
import Controller from '@ember/controller';
import { tracked } from '@glimmer/tracking';

export default class BaseController extends Controller {
  @tracked messageType = null;

  queryParams = ['messageType'];
}
  1. Run ember s
  2. Page is loading and will be auto redirected to sub route "base" (no error)
  3. Refresh page (F5)
  4. Error Uncaught TypeError: routeInfos[(routeInfoLength - 1)] is undefined

It seems like router has problem with default value null, when the current route is the same.

🌍 Environment

  • Ember: v5.8.0 (its also present in older versions)
  • Node.js/npm: v18.19

➕ Additional Context

There is reported the same error in other cases with older versions.
https://github.com/emberjs/ember.js/issues?q=is%3Aissue+is%3Aopen+routeInfos%5B%28routeInfoLength+-+1%29%5D

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions