Page MenuHomePhabricator

DataCloneError: Failed to execute 'pushState' on 'History': HTMLLIElement object could not be cloned / DataCloneError: The object could not be cloned in changeUrl
Closed, ResolvedPublicPRODUCTION ERROR


Traffic is low (6 errors in last 7 days) but raising in case it breaks an important workflow.*/logstash-2021.05.22?id=ttANlXkBStjVNP_PKf3W

DataCloneError: Failed to execute 'pushState' on 'History': HTMLLIElement object could not be cloned.
at Object.changeUrl  URL1:98:850
at Object.changeFilter  URL1:98:423
at HTMLButtonElement.<anonymous>  URL1:83:358
at HTMLButtonElement.dispatch  URL1:176:214
at HTMLButtonElement.elemData.handle  URL1:172:848


Using mediawiki.router might help here.


No user visible impact other than error on the developer console.


Request URL

Event Timeline

  • Location:
  • Browser: Chrome 90.
	changeFilter: function ( filter ) {
		if ( !checkDirty() ) {
		mw.translate.changeUrl( { filter: filter, showMessage: null } );
		state.messageList.changeSettings( { filter: getActualFilter( filter ) } );

	changeUrl: function ( params, forceChange ) {
		var uri = new mw.Uri( window.location.href );
		uri.extend( params );
		Object.keys( params ).forEach( function ( key ) {
			if ( params[ key ] === null ) {
				delete uri.query[ key ];
		} );

		if ( uri.toString() === window.location.href ) {

		if ( !forceChange && history.pushState && $( '.tux-messagelist' ).length ) {
			history.pushState( uri, null, uri.toString() );

I don't think using a different way to changing the URL will avoid this error. It seems the problem is that a DOM element is making its way into the serialization here, which is not something browsers generally support. As for how, I don't know. The above code shows null being passed, so I'm not sure what is leading it to serialize a DOM element here.

Krinkle changed the subtype of this task from "Task" to "Production Error".
Krinkle set Request URL to

Change 719099 had a related patch set uploaded (by Nikerabbit; author: Nikerabbit):

[mediawiki/extensions/Translate@master] Fix rare JavaScript DataCloneError on Special:Translate

Nikerabbit updated the task description. (Show Details)
Nikerabbit added a subscriber: Nikerabbit.

Adding to the sprint for review. Turns out the fix is trivial.

Change 719099 merged by jenkins-bot:

[mediawiki/extensions/Translate@master] Fix rare JavaScript DataCloneError on Special:Translate

QAd on Keeping open for up to week to confirm from Logstash.

Last seen on 2021-09-15. Looks good to me.