Make WordPress Core

Opened 5 weeks ago

Last modified 6 minutes ago

#62767 assigned defect (bug)

Featured image: media-models.min.js?ver=6.8-alpha-59568:2 Uncaught TypeError: t.get is not a function

Reported by: nataliat2004's profile nataliat2004 Owned by: desrosj's profile desrosj
Milestone: 6.8 Priority: normal
Severity: normal Version: trunk
Component: Media Keywords: has-testing-info has-patch commit
Focuses: javascript, administration Cc:

Description

  1. Create fresh environment
  2. Install WP beta and update env to WP 6.8 nightly
  3. Add several media files (I have 1 .png and 2 .jpg files)
  4. Create new post
  5. Click 'Set featured image' and select Media Library tab

Actual result: Media files are not displayed. Console error:
media-models.min.js?ver=6.8-alpha-59568:2 Uncaught TypeError: t.get is not a function

at n.comparator (media-models.min.js?ver=6.8-alpha-59568:2:5574)
at e.comparator (media-views.min.js?ver=6.8-alpha-59568:2:7431)
at Array.sort (<anonymous>)
at n.sort (backbone.min.js?ver=1.6.0:2:11690)
at n.set (backbone.min.js?ver=1.6.0:2:10286)
at n.add (backbone.min.js?ver=1.6.0:2:8973)
at n.validate (media-models.min.js?ver=6.8-alpha-59568:2:2968)
at n._validateHandler (media-models.min.js?ver=6.8-alpha-59568:2:3961)
at p (backbone.min.js?ver=1.6.0:2:3818)
at f (backbone.min.js?ver=1.6.0:2:3497)

https://monosnap.com/file/ZfbciBdHg9ZJVvp0c3BSJT7UgTmJyD

Attachments (2)

Add+New+Post+80E294+WordPress+2025-01-02+10-43-55.png (542.8 KB) - added by poena 5 weeks ago.
Screenshot of JavaScript error
mediaNotDisplayed.png (153.3 KB) - added by mai21 4 weeks ago.

Download all attachments as: .zip

Change History (13)

@poena
5 weeks ago

Screenshot of JavaScript error

#1 @poena
5 weeks ago

Hi
I have uploaded your remote screenshot to the ticket.

I am not able to reproduce the problem on 6.8 alpha, but I used WordPress trunk, not the beta tester plugin nightly.

Windows 11. Chrome Version 131.0.6778.205.

### wp-core ###

version: 6.8-alpha-59274-src
site_language: en_US
user_language: en_US
timezone: +00:00
permalink: /%year%/%monthnum%/%day%/%postname%/
https_status: false
multisite: false
user_registration: 0
blog_public: 1
default_comment_status: open
environment_type: local
user_count: 1
dotorg_communication: true

### wp-paths-sizes ###

wordpress_path: /var/www/src
wordpress_size: 99.23 MB (104050413 bytes)
uploads_path: /var/www/src/wp-content/uploads
uploads_size: 94.78 KB (97052 bytes)
themes_path: /var/www/src/wp-content/themes
themes_size: 44.97 MB (47152710 bytes)
plugins_path: /var/www/src/wp-content/plugins
plugins_size: 2.64 KB (2708 bytes)
fonts_path: /var/www/src/wp-content/uploads/fonts
fonts_size: 0.00 B (0 bytes)
database_size: 2.80 MB (2932736 bytes)
total_size: 147.09 MB (154235619 bytes)

### wp-active-theme ###

name: Twenty Twenty-Three (twentytwentythree)
version: 1.6
author: the WordPress team
author_website: https://wordpress.org
parent_theme: none
theme_features: core-block-patterns, post-thumbnails, responsive-embeds, editor-styles, html5, automatic-feed-links, widgets-block-editor, block-templates
theme_path: /var/www/src/wp-content/themes/twentytwentythree
auto_update: Disabled

### wp-themes-inactive (14) ###

Twenty Eleven: version: 4.8, author: the WordPress team, Auto-updates disabled
Twenty Fifteen: version: 3.9, author: the WordPress team, Auto-updates disabled
Twenty Fourteen: version: 4.1, author: the WordPress team, Auto-updates disabled
Twenty Nineteen: version: 3.0, author: the WordPress team, Auto-updates disabled
Twenty Seventeen: version: 3.8, author: the WordPress team, Auto-updates disabled
Twenty Sixteen: version: 3.4, author: the WordPress team, Auto-updates disabled
Twenty Ten: version: 4.3, author: the WordPress team, Auto-updates disabled
Twenty Thirteen: version: 4.3, author: the WordPress team, Auto-updates disabled
Twenty Twelve: version: 4.4, author: the WordPress team, Auto-updates disabled
Twenty Twenty: version: 2.8, author: the WordPress team, Auto-updates disabled
Twenty Twenty-Five: version: 1.0, author: the WordPress team, Auto-updates disabled
Twenty Twenty-Four: version: 1.3, author: the WordPress team, Auto-updates disabled
Twenty Twenty-One: version: 2.4, author: the WordPress team, Auto-updates disabled
Twenty Twenty-Two: version: 1.9, author: the WordPress team, Auto-updates disabled

### wp-plugins-inactive (1) ###

Hello Dolly: version: 1.7.2, author: Matt Mullenweg, Auto-updates disabled

### wp-media ###

image_editor: WP_Image_Editor_Imagick
imagick_module_version: 1691
imagemagick_version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org
imagick_version: 3.7.0
file_uploads: 1
post_max_size: 1G
upload_max_filesize: 1G
max_effective_size: 1 GB
max_file_uploads: 20
imagick_limits: 
	imagick::RESOURCETYPE_AREA: 122 MB
	imagick::RESOURCETYPE_DISK: 1073741824
	imagick::RESOURCETYPE_FILE: 786432
	imagick::RESOURCETYPE_MAP: 512 MB
	imagick::RESOURCETYPE_MEMORY: 256 MB
	imagick::RESOURCETYPE_THREAD: 1
	imagick::RESOURCETYPE_TIME: 9.2233720368548E+18
imagemagick_file_formats: 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV
gd_version: bundled (2.1.0 compatible)
gd_formats: GIF, JPEG, PNG, WebP, BMP
ghostscript_version: 9.53.3

### wp-server ###

server_architecture: Linux 5.15.167.4-microsoft-standard-WSL2 x86_64
httpd_software: nginx/1.25.3
php_version: 8.2.12 64bit
php_sapi: fpm-fcgi
max_input_variables: 1000
time_limit: 30
memory_limit: 128M
admin_memory_limit: 256M
max_input_time: -1
upload_max_filesize: 1G
php_post_max_size: 1G
curl_version: 7.74.0 OpenSSL/1.1.1w
suhosin: false
imagick_availability: true
pretty_permalinks: true
current: 2025-01-02T09:53:10+00:00
utc-time: Thursday, 02-Jan-25 09:53:10 UTC
server-time: 2025-01-02T09:53:08+00:00

### wp-database ###

extension: mysqli
server_version: 8.0.37
client_version: mysqlnd 8.2.12
max_allowed_packet: 67108864
max_connections: 151

### wp-constants ###

WP_HOME: undefined
WP_SITEURL: undefined
WP_CONTENT_DIR: /var/www/src/wp-content
WP_PLUGIN_DIR: /var/www/src/wp-content/plugins
WP_MEMORY_LIMIT: 40M
WP_MAX_MEMORY_LIMIT: 256M
WP_DEBUG: true
WP_DEBUG_DISPLAY: true
WP_DEBUG_LOG: true
SCRIPT_DEBUG: true
WP_CACHE: false
CONCATENATE_SCRIPTS: undefined
COMPRESS_SCRIPTS: undefined
COMPRESS_CSS: undefined
WP_ENVIRONMENT_TYPE: local
WP_DEVELOPMENT_MODE: core
DB_CHARSET: utf8
DB_COLLATE: undefined

### wp-filesystem ###

wordpress: writable
wp-content: writable
uploads: writable
plugins: writable
themes: writable
fonts: writable

Last edited 4 weeks ago by SergeyBiryukov (previous) (diff)

#2 @poena
5 weeks ago

  • Severity changed from major to normal

#3 @poena
5 weeks ago

I found this past ticket which seems to be identical? #61519

Last edited 4 weeks ago by SergeyBiryukov (previous) (diff)

#4 @mai21
4 weeks ago

  • Keywords has-testing-info added

Reproduction Report

Description

This report validates that the issue can be reproduced with mentioned steps in the main ticket

Environment

  • WordPress: 6.8-alpha-59565
  • PHP: 8.3.14
  • Server: nginx/1.26.2
  • Database: mysqli (Server: 10.5.27-MariaDB-ubu2004-log / Client: mysqlnd 8.3.14)
  • Browser: Chrome 131.0.0.0
  • OS: Linux
  • Theme: Twenty Ten 4.3
  • MU Plugins: None activated
  • Plugins:
    • Test Reports 1.2.0
    • WordPress Beta Tester 3.6.2

Actual Results

  1. ✅ Error condition occurs (reproduced).

Additional Notes

  • Tested on a site with many images in media library, only the latest image is displayed and has the same console error

Supplemental Artifacts

Add as Attachment

#5 @poena
10 days ago

  • Focuses javascript added

I am personally still unable to reproduce it, but after discussing with @afercia and @SergeyBiryukov We believe it is caused by the upgrade to uglify-js in [59509] similar to #61519.

@desrosj In my opinion, it is not ideal to keep using and keep reverting to the older version of uglify-js, instead a solution should be found where the script continues to work with the updated uglify-js.

Last edited 10 days ago by SergeyBiryukov (previous) (diff)

#6 @SergeyBiryukov
10 days ago

  • Milestone changed from Awaiting Review to 6.8

Indeed, looks like a similar issue was fixed in [58586] / #61519 for WordPress 6.6, but then uglify-js was updated again from 3.17.4 to 3.19.3 in [59509] / #62220.

Maybe this can only be reproduced with WP_DEBUG off?

#7 @siliconforks
9 days ago

I was able to reproduce the issue with a production build (created with npm run build).

Some notes on reproducing this:

  • The bug seems to occur when images are being sorted, so you need to have at least two images in your media library to trigger it.
  • It does not appear to make any difference whether WP_DEBUG is true or false.
  • SCRIPT_DEBUG, on the other hand, does make a difference - make sure you do not have SCRIPT_DEBUG set to true, because that will cause unminified files to be used. (By default SCRIPT_DEBUG is not set, so this should not be an issue unless you've previously added it to your wp-config.php file.)

It seems like the cause of the issue was a change in version 3.18.0 of UglifyJS to "process input as ES module by default":

https://github.com/mishoo/UglifyJS/releases/tag/v3.18.0

In particular it appears to be media-views.js that is causing the issue - UglifyJS is assuming that it is an ES module, which causes UglifyJS to generate a faulty media-views.min.js file.

This ticket was mentioned in PR #8219 on WordPress/wordpress-develop by @siliconforks.


8 days ago
#8

  • Keywords has-patch added

The behavior of UglifyJS changed in version 3.18.0 to "process input as ES module by default". This can cause issues for scripts which are not ES modules.

Trac ticket: https://core.trac.wordpress.org/ticket/62767

#9 follow-up: @desrosj
21 hours ago

Before [59509] I made sure to test in multiple browsers and I was not seeing the same issue. I am also unable to reproduce this in trunk currently.

This seems like a reasonable path forward, but there is one thing to note that gives me pause to commit. Before applying the PR I see no console errors. After, I see:

Uncaught TypeError: can't access property "value", document.querySelector(...) is null

#10 in reply to: ↑ 9 @siliconforks
6 hours ago

Replying to desrosj:

Before [59509] I made sure to test in multiple browsers and I was not seeing the same issue. I am also unable to reproduce this in trunk currently.

I'm still seeing this in the latest trunk (r59766) - not sure why so many people are having trouble reproducing it... You have (at least) 2 images in your media library?

This seems like a reasonable path forward, but there is one thing to note that gives me pause to commit. Before applying the PR I see no console errors. After, I see:

Uncaught TypeError: can't access property "value", document.querySelector(...) is null

I believe that is an unrelated issue that was in trunk at the time I made the pull request a week ago and was later fixed in r59746.

I have just rebased my pull request on the latest trunk version, so that issue should be gone now.

#11 @desrosj
6 minutes ago

  • Keywords commit added
  • Owner set to desrosj
  • Status changed from new to assigned

Thanks the PR is working without errors now.

For my testing, I have tried all combinations of:

  • SCRIPT_DEBUG both true and false (I know, true shouldn't show the issue).
  • WP_DEBUG both true and false
  • Chrome, Firefox, Safari
  • I have 6 images in my media library.

I'm still unsure of why I am unable to reproduce, but since the PR preserves the previous behavior, I think this change makes sense.

Note: See TracTickets for help on using tickets.