Simply opening Simulator app (26.0) causes high CPU usage on macOS Tahoe (26.1).
ReportCrash process usage is very high throughout and causes the system to heat up pretty soon.
Looking into Console app for the logs found MercuryPosterExtension process is keep on crashing. (Check under Crash Reports)
simctl Diagnose
https://download.developer.apple.com/OS_X/OS_X_Logs/simctl_Diagnose_Logging_Instructions.pdf
Share the Simulator Diagnose report while reporting, Thanks.
I have raised a ticket/feedback with Apple. I request all of you to raise one too so this gets fixed soon.
Apple Feedback Assistant - FB20985249
Posts under macOS tag
200 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello,
Users are reporting that widgets in my iOS app running on Mac OS are starting to crash after updating to MacOS 26.1.
Everything works fine on iOS 26.1 and MacOS 15.6.
The same bugs I found in iOS 26 beta 4, but then Apple fixed them in iOS 26RC and now they're back in macOS.
Any suggestions?
Crash report:
Process: WidgetWebWidgetExt [23580]
Path: /Volumes/VOLUME/*/WidgetWeb.app/PlugIns/WidgetWebWidgetExt.appex/WidgetWebWidgetExt
Identifier: app.vitalek.widgetapp.web.WidgetWebExt
Version: 7.5 (5796)
AppVariant: 1:MacFamily20,1:18
Code Type: ARM-64 (Native)
Role: unknown
Parent Process: launchd [1]
Coalition: app.vitalek.widgetapp.web.WidgetWebExt [28539]
User ID: 501
Date/Time: 2025-11-04 11:47:19.0746 -0500
Launch Time: 2025-11-04 11:47:18.8035 -0500
Hardware Model: Mac14,6
OS Version: macOS 26.1 (25B78)
Release Type: User
Crash Reporter Key: 39D39455-7F69-746C-2A1D-7A6086F25541
Incident Identifier: 7AC31574-73A4-4320-B17A-C2819252EEDA
Sleep/Wake UUID: 1535756C-44D8-497F-A288-07E53CD9B9E4
Time Awake Since Boot: 18000 seconds
Time Since Wake: 7417 seconds
System Integrity Protection: enabled
Triggered by Thread: 0, Dispatch Queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: Namespace SIGNAL, Code 6, Abort trap: 6
Terminating Process: WidgetWebWidgetExt [23580]
Application Specific Information:
abort() called
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x1926e75b0 __pthread_kill + 8
1 libsystem_pthread.dylib 0x192721888 pthread_kill + 296
2 libsystem_c.dylib 0x192626850 abort + 124
3 libc++abi.dylib 0x1926d5858 __abort_message + 132
4 libc++abi.dylib 0x1926c44d4 demangling_terminate_handler() + 304
5 libobjc.A.dylib 0x1922f0414 _objc_terminate() + 156
6 libc++abi.dylib 0x1926d4c2c std::__terminate(void (*)()) + 16
7 libc++abi.dylib 0x1926d8394 __cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*) + 88
8 libc++abi.dylib 0x1926d833c __cxa_throw + 92
9 libobjc.A.dylib 0x1922e6580 objc_exception_throw + 448
10 Foundation 0x19495122c -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 288
11 UIKitMacHelper 0x1b0240c80 -[UINSApplicationDelegate init] + 1348
12 UIKitMacHelper 0x1b02406d8 __41+[UINSApplicationDelegate sharedDelegate]_block_invoke + 48
13 libdispatch.dylib 0x19257eac4 _dispatch_client_callout + 16
14 libdispatch.dylib 0x192567a60 _dispatch_once_callout + 32
15 UIKitMacHelper 0x1b02405dc +[UINSApplicationDelegate sharedDelegate] + 324
16 UIKitCore 0x1ca488518 -[UIScene setTitle:] + 188
17 UIKitCore 0x1ca487e90 -[UIScene initWithSession:connectionOptions:] + 1084
18 UIKitCore 0x1cb2a6a54 -[UIWindowScene initWithSession:connectionOptions:] + 92
19 UIKitCore 0x1ca66b44c -[_UIScreenBasedWindowScene initWithScreen:session:lookupKey:] + 292
20 UIKitCore 0x1ca66aff4 +[_UIScreenBasedWindowScene _unassociatedWindowSceneForScreen:create:] + 408
21 UIKitCore 0x1cb09171c -[UIWindow _uiWindowSceneFromFBSScene:] + 704
22 UIKitCore 0x1cb0918cc -[UIWindow _initWithFrame:debugName:scene:attached:] + 92
23 UIKitCore 0x1cb091e68 -[UIWindow _initWithOrientation:] + 56
24 UIKitCore 0x1cb091ebc -[UIWindow init] + 72
25 WidgetWebWidgetExt 0x1027eb250 0x102718000 + 864848
26 WidgetWebWidgetExt 0x1027ea418 0x102718000 + 861208
27 WidgetWebWidgetExt 0x1027f5bc8 0x102718000 + 908232
28 WidgetWebWidgetExt 0x1027f4bfc 0x102718000 + 904188
29 WidgetWebWidgetExt 0x1027cf9f4 0x102718000 + 752116
30 WidgetWebWidgetExt 0x102807c20 0x102718000 + 982048
31 libdispatch.dylib 0x19257eac4 _dispatch_client_callout + 16
32 libdispatch.dylib 0x1925696e4 _dispatch_continuation_pop + 596
33 libdispatch.dylib 0x19257c800 _dispatch_source_latch_and_call + 396
34 libdispatch.dylib 0x19257b4d4 _dispatch_source_invoke + 844
35 libdispatch.dylib 0x19259c008 _dispatch_main_queue_drain.cold.5 + 592
36 libdispatch.dylib 0x192573f48 _dispatch_main_queue_drain + 180
37 libdispatch.dylib 0x192573e84 _dispatch_main_queue_callback_4CF + 44
38 CoreFoundation 0x1927ea980 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
39 CoreFoundation 0x1927bf7dc __CFRunLoopRun + 1944
40 CoreFoundation 0x19287935c _CFRunLoopRunSpecificWithOptions + 532
41 Foundation 0x194a06890 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
42 Foundation 0x194005a50 -[NSRunLoop(NSRunLoop) run] + 64
43 libxpc.dylib 0x19240ce14 _xpc_objc_main + 668
44 libxpc.dylib 0x19241ecf8 _xpc_main + 40
45 libxpc.dylib 0x19241ecd0 xpc_bs_main + 16
46 BoardServices 0x1ac51179c +[BSServicesConfiguration activateXPCService] + 72
47 ExtensionFoundation 0x237a92710 _EXRunningExtension.resume() + 1592
48 ExtensionFoundation 0x237a911a8 _EXRunningExtension.start(withArguments:count:) + 124
49 ExtensionFoundation 0x237a88f24 EXExtensionMain(_:_:) + 668
50 Foundation 0x1940065ec NSExtensionMain + 200
51 dyld 0x192359d54 start + 7184
SwiftUI’s Menu is used also to display view controls like pop-up buttons. However, in such cases, its content is evaluated at the moment the button itself appears, although it’s not required until the menu is actually opened. Additionally, since the menu content isn’t re-evaluated when opened, if the content is dynamically generated, there could be a discrepancy between the actual state and the displayed state depending on the timing.
Considering these points, I’d like to delay generating the menu content until the moment it’s actually opened.
Is there a way to delay the evaluation and generation of the Menu’s content until the moment its contents are displayed?
Note: I'd like to know about using it within a macOS app.
When I startAdvertising, my localName is long, more than 8 bytes. like @"123456789".
[_peripheralManager startAdvertising:@{
CBAdvertisementDataLocalNameKey: @"123456789",
CBAdvertisementDataServiceUUIDsKey: @[[CBUUID UUIDWithString:@"bbbb14c7-4697-aaaa-b436-d47e3d4ed187"]]
}];
When running on macOS 11.x though localName exceeds 8 bytes. But it can still be scanned.
{
kCBAdvDataIsConnectable = 1;
kCBAdvDataLocalName = 123456789;
kCBAdvDataRxPrimaryPHY = 0;
kCBAdvDataRxSecondaryPHY = 0;
kCBAdvDataServiceUUIDs = (
"BBBB14C7-4697-AAAA-B436-D47E3D4ED187"
);
kCBAdvDataTimestamp = "680712553.800874";
kCBAdvDataTxPowerLevel = 12;
}
But running after macOS 12.x, if localName exceeds 8 bytes, it will be completely ignored. In the scanned data, localName is empty.
{
kCBAdvDataIsConnectable = 1;
kCBAdvDataRxPrimaryPHY = 0;
kCBAdvDataRxSecondaryPHY = 0;
kCBAdvDataServiceUUIDs = (
"BBBB14C7-4697-AAAA-B436-D47E3D4ED187"
);
kCBAdvDataTimestamp = "680712744.108894";
kCBAdvDataTxPowerLevel = 12;
}
On macOS11.x, SCAN_RSP is utilized if localName exceeds 8 bytes,
while on macOS12.x, SCAN_RSP is always empty.
Why are there differences between macOS11.x and macos12.x, is there any documentation?
What is the maximum limit for localName? (On macOS 11.x, I verified it was 29 bytes
Are there other ways to broadcast longer data?
Does anyone know why? This has bothered me for a long time...
I'm working on an application for viewing AMF models on macOS, using RealityKit. AMF supports several different ways to color models, including per-vertex color (where the color of a triangle is interpolated from vertex to vertex) as well as per-face color (where the color of the triangle is the same across the entire face).
I'm trying to figure out how to support those color models using a RealityKit mesh. Apple's documentation (https://developer.apple.com/documentation/realitykit/modifying-realitykit-rendering-using-custom-materials) talks about per-vertex colors, but I haven't found a way to create a mesh that includes per-vertex colors, other than use a texture map (which might be the correct solution).
Can someone give me some pointers?
I'm looking for clarification on a SwiftUI performance point mentioned in the recent Optimize your app's speed and efficiency | Meet with Apple video.
(YouTube link not allowed, but the video is available on the Apple Developer channel.)
At the 1:48:50 mark, the presenter says:
Writing a value to the Environment doesn't only affect the views that read the key you're updating. It updates any view that reads from any Environment key. [abbreviated quote]
That statement seems like a big deal if your app relies heavily on Environment values.
Context
I'm building a macOS application with a traditional three-panel layout. At any given time, there are many views on screen, plus others that exist in the hierarchy but are currently hidden (for example, views inside tab views or collapsed splitters).
Nearly every major view reads something from the environment—often an @Observable object that acts as a service or provider.
However, there are a few relatively small values that are written to the environment frequently, such as:
The selected tab index
The currently selected object on a canvas
The Question
Based on the presenter's statement, I’m wondering:
Does writing any value to the environment really cause all views in the entire SwiftUI view hierarchy that read any environment key to have their body re-evaluated?
Do environment writes only affect child views, or do they propagate through the entire SwiftUI hierarchy?
Example:
View A
└─ View B
├─ View C
└─ View D
If View B updates an environment value, does that affect only C and D, or does it also trigger updates in A and B (assuming each view has at least one @Environment property)?
Possible Alternative
If all views are indeed invalidated by environment writes, would it be more efficient to “wrap” frequently-changing values inside an @Observable object instead of updating the environment directly?
// Pseudocode
@Observable final class SelectedTab {
var index: Int
}
ContentView()
.environment(\.selectedTab, selectedTab)
struct TabView: View {
@Environment(\.selectedTab) private var selectedTab
var body: some View {
Button("Action") {
// Would this avoid invalidating all views using the environment?
selectedTab.index = 1
}
}
}
Summary
From what I understand, it sounds like the environment should primarily be used for stable, long-lived objects—not for rapidly changing values—since writes might cause far more view invalidations than most developers realize.
Is that an accurate interpretation?
Follow-Up
In Xcode 26 / Instruments, is there a way to monitor writes to @Environment?
FaceTime’s screen-share audio balance is insanely absurd right now. Whenever I share media, the system audio that gets sent through FaceTime is a tiny whisper even at full volume (or even when connected to my speaker or headphones). The moment anyone on the call makes any noise at all, the shared audio ducks so hard it disappears, while the voice (or rustling or air conditioning noise) spikes to painful levels. It’s impossible to watch or listen to anything together. Also, the feature where FaceTime would shrink to a square during screen-sharing has been completely removed. That was a good feature and I'm really confused why it's gone. Now, the FaceTime window stays as a long rectangle that covers part of the content I'm trying to share (unless I do full screen tile, but then I can't pull up any other windows during the call) and can't be made smaller than about a third of the screen. You can't resize the window or adjust its dimensions, so it ends up blocking the actual media you're trying to watch.
Here are some feature requests/fixes that would greatly improve the FaceTime screen-share experience:
Option to adjust the shared media volume independently of call audio.
Disable/toggle the extreme automatic audio docking while screen-sharing
Reintroduce the minimized “floating square” mode or allow full manual resizing and repositioning of the FaceTime window during screen-share sessions.
Overall, this setup makes FaceTime screen-sharing basically unusable. The audio balance is so inconsistent that it’s easier to switch to Zoom or Google Meet, which both handle shared sound correctly and let you move the call window out of the way. Until these issues are fixed, there’s no practical reason to use FaceTime for shared viewing at all.
Platform SSO not working on macos devices for zscaler application other app like safari / chrome working well.
Need help from apple expert on the same.
Environment :
IDP : Entra ID
MDM : Omnissa Workspace one UEM
platform : macOS
NSVisualEffectView in AppKit has two main properties: material and blendingMode.
Material is well supported in SwiftUI, but I can't seem to find an equivalent for blendingMode.
What is the SwiftUI equivalent to NSVisualEffect.BlendingMode?
On macOS, I get a system popup when running UI tests in GitHub saying:
“bash” is requesting to bypass the system private window picker and directly access your screen and audio.
How can I prevent these login and screen access popups from appearing during automated UI tests? Is there an official setup or configuration for running IntelliJ UI tests in CI environments (macOS, Linux, Windows) to avoid such dialogs? My builds run in GitHub Actions VMs, so I can’t manually grant these permissions, and they block the tests.
It's quite common for app bundles to be distributed in .zip files, and to be stored on-disk as filesystem-compressed files. However, having them both appears to be an edge case that's broken for at least two major releases! (FB19048357, FB19329524)
I'd expect a simple ditto -x -k appbundle.zip ~/Applications (-x: extract, -k: work on a zip file) to work. Instead it spits out countless errors and leaves 0 Byte files in the aftermath 😭
Please fix.
Hello,
I would like to change the system timezone in macOS, given a timezone identifier in the IANA timezone database.
is 'systemsetup -settimezone' the only available tool or API that can be used to change the timezone?
I have observed that TimeZone(identifier:) can initialize a TimeZone from any identifier in the tz database, but many identifiers are missing from the list accepted by systemsetup.
For example, if the user has set the timezone to "Mumbai - India" in system settings, the timezone identifier returned by 'systemsetup -gettimezone' is Asia/Kolkata, which is not in the list printed by 'systemsetup -listtimezones'.
What is the recommended way to map a IANA timezone name (or a TimeZone object) to one of the timezone names accepted by 'systemsetup'?
List {
Text("ITEM 1")
.onHover(perform: { hovering in
debugPrint("hovering: ", hovering)
})
.help("ITEM 1")
Text("ITEM 2")
.onHover(perform: { hovering in
debugPrint("hovering: ", hovering)
})
.help("ITEM 2")
Text("ITEM 3")
.onHover(perform: { hovering in
debugPrint("hovering: ", hovering)
})
.help("ITEM 3")
}
.fixedSize(horizontal: false, vertical: true)
.frame(maxHeight: 200)
}
Hello everyone!!!
Considering the snippet above, seems like the onHover action, including help modifiers, doesn't work for the elements of a List, on macOS Tahoe.
The situation changes using a ScrollView embedding a LazyVStack, or disabling Liquid Glass from the info plist, so my guess is that the new Liquid Glass style has something to do with this issue though I didn't find any clue about it.
Does anyone have any idea?
Maybe there's a layer above that doesn't allow to trigger the onHover modifier?
Thanks in advance for your help!
An app that is capable of running on iPad can be usually run on Mac if properly designed and that's great. Recently I've tried to launch one of my old apps on macOS 26 in "Designed for iPad" mode and noticed that image picker behaves oddly. Images are barely selectable, you have to click several times and yet it might select image and might not. On iPhone and on iPad any kind of image picking works fine. I've tried all kinds of native pickers (PhotosPicker, PHPickerViewController, UIImagePickerController), but the result is almost the same.
So how should I nowadays do image picking in (mostly) iOS app when it is run on macOS?
Below is the most canonical and modern code I've tried. The issue is reproduced even with such bare minimum of code with the label not being put to a Form/List or any other factors.
import SwiftUI
import PhotosUI
struct ContentView: View {
@State private var selectedItem: PhotosPickerItem?
@State private var selectedImage: UIImage?
var body: some View {
VStack {
if let selectedImage {
Image(uiImage: selectedImage)
.resizable()
.scaledToFit()
}
// Most modern photo library picker, not `PHPickerViewController`, not `UIImagePickerController` based pickerPhotosPicker(
selection: $selectedItem,
matching: .images
) {
Label("Select Photo", systemImage: "photo")
}
.onChange(of: selectedItem) { newItem inTask {
if let data = try? await newItem?.loadTransferable(type: Data.self),
let uiImage = UIImage(data: data) {
selectedImage = uiImage
}
}
}
}
}
}
I am using an NSOutlineView via NSViewRepresentable in a SwiftUI application running on macOS. Everything has been working fine.
Up until lately, I've been returning a custom NSView for each item using the standard:
func outlineView(_ outlineView: NSOutlineView, viewFor tableColumn: NSTableColumn?, item: Any) -> NSView? {
// View recycling omitted.
return MyItemView(item)
}
Now I want to explore using a little bit more SwiftUI and returning an NSHostingView from this delegate method.
func outlineView(_ outlineView: NSOutlineView, viewFor tableColumn: NSTableColumn?, item: Any) -> NSView? {
// View recycling omitted.
let rootView = MySwiftUIView(item)
let hostingView = NSHostingView(rootView: rootView)
return hostingView
}
For the most part, this appears to be working fine. NSOutlineView is even correctly applying highlight styling, so that's great.
But there's one small glitch. The outline view's disclosure triangles do not align with the hosting view's content. The disclosure triangles appear to just be pinned to the top. Perhaps they can't find a baseline constraint or something?
Is there any SwiftUI modifier or AppKit/SwiftUI technique I can apply here to get the disclosure button to appear in the right place?
Here is what the SwiftUI + NSHostingView version looks
like:
Note the offset disclosure indicators. (Image spacing is a bit off as well using Label, but fixable.
Here is what an NSView with NSTextFields looks like:
Disclosure indicators are correctly aligned, as you would expect.
I'm trying to create a UI with two button bars (top and bottom) inside the detail view of a NavigationSplitView, instead of using the built-in .toolbar() modifier. I'm using .ignoresSafeArea(.container, edges: .vertical) so the detail view can reach into that area.
However, in macOS and iOS 26 the top button is not clickable/tappable because it is behind an invisible View created by the non-existent toolbar. Interestingly enough, if I apply .buttonStyle(.borderless) to the top button it becomes clickable (in macOS).
On the iPad the behavior is different depending on the iPad OS version. In iOS 26, the button is tappable only by the bottom half. In iOS 18 the button is always tappable.
Here's the code for the screenshot:
import SwiftUI
struct ContentView2: View {
@State private var sidebarSelection: String?
@State private var contentSelection: String?
@State private var showContentColumn = true
@State private var showBars = true
var body: some View {
NavigationSplitView {
// Sidebar
List(selection: $sidebarSelection) {
Text("Show Content Column").tag("three")
Text("Hide Content Column").tag("two")
}
.navigationTitle("Sidebar")
} detail: {
VStack(spacing: 0) {
if showBars {
HStack {
Button("Click Me") {
withAnimation {
showBars.toggle()
}
}
.buttonStyle(.borderedProminent)
}
.frame(maxWidth: .infinity, minHeight: 50, idealHeight: 50, maxHeight: 50)
.background(.gray)
.transition(.move(edge: .top))
}
ZStack {
Text("Detail View")
}
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .init(horizontal: .center, vertical: .center))
.border(.red)
.onTapGesture(count: 2) {
withAnimation {
showBars.toggle()
}
}
if showBars {
HStack {
Button("Click Me") {
withAnimation {
showBars.toggle()
}
}
}
.frame(maxWidth: .infinity, minHeight: 50, idealHeight: 50, maxHeight: 50)
.background(.gray)
.transition(.move(edge: .bottom))
}
}
.ignoresSafeArea(.container, edges: .vertical)
.toolbarVisibility(.hidden)
}
.toolbarVisibility(.visible)
}
}
I'm confused by this very inconsistent behavior and I haven't been able to find a way to get this UI to work across both platforms.
Does anybody know how to remove the transparent toolbar that is preventing clicks/taps in this top section of the view? I'm hoping there's an idiomatic, native SwiftUI way to do it.
I'm downloading a fine-tuned model from HuggingFace which is then cached on my Mac when the app first starts. However, I wanted to test adding a progress bar to show the download progress. To test this I need to delete the cached model. From what I've seen online this is cached at
/Users/userName/.cache/huggingface/hub
However, if I delete the files from here, using Terminal, the app still seems to be able to access the model.
Is the model cached somewhere else?
On my iPhone it seems deleting the app also deletes the cached model (app data) so that is useful.
I have designed a new icon for my app/Tahoe in Icon Composer (launched from within Xcode)but I simply cannot get it to show up. The documentation for Icon Composer spends a lot of time describing how to design the icons but goes distressingly vague/silent on how one might use it. It suggests that I should drag the file to Xcode and it will guide me as to where to put it.
The app continues to use the old (pre-Tahoe) icon.
I don't get any change of behaviour and I don't know what to name the file. I assume that there are no other settings that I have to change. I can't find anything on the web or in Apple's documentation: maybe I'm missing something obvious!
My app is a working NSDocument-based Cocoa project.
Any suggestions please.
Tahoe 26.0.1, Xcode 26.0.1, Apple M1 Max MBP.
Hi,
I've come across this weird issue which I think is probably a bug, but before I file a radar I'll ask here just in case I'm doing something in a weird way. I found that on macOS if I have a Toggle inside a GeometryReader inside a Tab, and I have an onChange handler for some property of the geometry (even if the onChange doesn't do anything) then the second time I switch to that tab, I get a whole lot of 'AttributeGraph: cycle detected through attribute' logs and the app hangs. It doesn't matter whether it's on the first or second tab, but I've put it in the first tab here.
This only happens on macOS… at first I thought it also happened on iOS, but it turned out that was a similar symptom caused by an unrelated issue.
Here is some code that reproduces the issue:
TabView {
Tab("tab 1", systemImage: "rainbow") {
Toggle("This toggle is fine", isOn: .constant(true))
}
Tab("tab 2", systemImage: "checkmark") {
GeometryReader { geometry in
VStack {
//but with this toggle here, combined with the onChange handler,
//the second time we switch to this tab we get the hang
Toggle("This toggle causes a hang the second time we switch to this tab", isOn: .constant(true))
//if we comment out the toggle and uncomment the text instead,
//it's fine.
//Text("This text does not cause a hang")
}.onChange(of: geometry.size.height) {
//even if this is empty, having it here makes
//the app hang when switching to this tab for the second time.
//and emit 'AttributeGraph: cycle detected through attribute' in the log
}
}
}
}
.padding()
If I remove either the Toggle or the onChange handler, there is no problem. I can put all sorts of other things in the tab, but as soon as I put a toggle there, I get this hang. For now I've worked around it by putting Toggles in a settings sheet rather than directly on the tab, but since there's plenty of space on macOS it would be nice to have them directly on the tab.
One thing that's weird is that if I put this same code in the Settings window of an app, it doesn't seem to have the problem — maybe because the tabs are a different style there.
AppleScript for the Music app no longer supports the current track event. Before macOS Tahoe, running the following script in Script Editor would return the current track information:
tell application "Music"
return name of current track
end tell
However, when I run this script on a device with macOS 26 Tahoe, I receive this error:
"Result: error "Music got an error: Can’t get name of current track." number -1728 from name of current track”
I've tested this extensively, and here are my findings:
Going to the “songs” tab and playing something from there makes everything work.
Playing any song directly will make it work with current track UNLESS this song is NOT in your Music library (either added through Apple Music or uploaded).
If you play a song not in your library, current track is not updated even if you clicked on it specifically.
Playing an album (in your library obviously) makes all the tracks within it appear in current track until autoplay takes over.
Any autoplayed track won’t appear in current track even if in your library (unless: see the last bulletpoint)
Music played through the “songs” tab all appear in current track even if autoplay kicks in. I assume this is because this tab is an iTunes legacy (visually and under the hood) and doesn’t use the modern autoplay. This tab also won’t play non-library songs unlike the “albums” tab which seems to use the correct autoplay and suffers the same symptoms as the “recently added”, “home”, “radio”, etc… tabs.
Is this a bug, or has Apple simply deprecated this functionality?