Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
It's time for my recurring comment on the subject:


"Does this bug NOT occur to internal apple devs???"


Don't they use multiple displays too?

Does this bug not bug them to heck?

Don't they have lunch with "display OS" people and tell them about this if they do?

Prob. cause they all use apple displays. not third parties.
 
  • Like
Reactions: lasyos
@NikoBeaR I would certainly try removing one of the monitors and just running two (for a test), one over HDMI and one over DisplayPort - see what happens.
 
Like other I registered just to post about this long term and very frustrating issue.

[SOLUTION]
Better Display app fixed it for me after months of trying different things. Apple MBP M1 Max, OS Ventura 13.2 with 2 x ViewSonic monitors connected with StarTech HDMI -> USB-C cables.

BetterDisplay offers 14 day free trial so you can make sure it works for you - and then is $15 for pro license. I'm not affiliated ;)

Thanks to @aloshka 🙏
 
  • Like
Reactions: macsplusmacs
Buy this software and never look back people. It's a game changer for multiple monitor setups.
I downloaded and installed the trial, but my displays are still swapping. Are there any preferences to set? I tried storing the windows location, but it hasn't helped.

Using Ventura 13.2.1
 
Like other I registered just to post about this long term and very frustrating issue.

[SOLUTION]
Better Display app fixed it for me after months of trying different things. Apple MBP M1 Max, OS Ventura 13.2 with 2 x ViewSonic monitors connected with StarTech HDMI -> USB-C cables.

BetterDisplay offers 14 day free trial so you can make sure it works for you - and then is $15 for pro license. I'm not affiliated ;)

Thanks to @aloshka 🙏
What settings did you set in the app?
 
This problem is due to the fact that several manufactures use the EDID file structure in the wrong way, adopting same serialNumber for different monitor and different AlphanumericSerialNumber, which is a sub-attribute not a standard.

You can have a view from terminal with ioreg using this command:
ioreg -l | grep EDID

Seems that Apple has changed it's policy for EDID UUID calculations on Apple Silicon, respect to Intel architecture, so now these monitor are simply the same monitor from an OS point of view, that means they are randomly connected, and swapped, based on "who get first".
Test findings from IFission user on GitHub

The only definitive solutions are: a monitor firmware update that fix the EDID, or a fix from Apple with an OS update, which address these use case.

As a workaround you can try to use different cable interface (DisplayPort and Hdmi) to distinguish different connected monitors, or pass trough a dock that "re-assign" the EDID of one monitor.

Another good solution is to define a shortcut that simply swap monitor settings, if you have only 2 it should work pretty well.
This is well explained in this post from Lunar developer, which I thank you for this script:
https://notes.alinpanaitiu.com/Weird monitor bugs

Apple should have a look on this, it's not pleasant to end up with a broken setup after a machine upgrade, especially considering how much they cost.
 
Last edited:
This problem is due to the fact that several manufactures use the EDID file structure in the wrong way, adopting same serialNumber for different monitor and different AlphanumericSerialNumber, which is a sub-attribute not a standard.

You can have a view from terminal with ioreg using this command:
ioreg -l | grep EDID

Seems that Apple has changed it's policy for EDID UUID calculations on Apple Silicon, respect to Intel architecture, so now these monitor are simply the same monitor from an OS point of view, that means they are randomly connected, and swapped, based on "who get first".
Test findings from IFission user on GitHub

The only definitive solutions are: a monitor firmware update that fix the EDID, or a fix from Apple with an OS update, which address these use case.

As a workaround you can try to use different cable interface (DisplayPort and Hdmi) to distinguish different connected monitors, or pass trough a dock that "re-assign" the EDID of one monitor.

Another good solution is to define a shortcut that simply swap monitor settings, if you have only 2 it should work pretty well.
This is well explained in this post from Lunar developer, which I thank you for this script:
https://notes.alinpanaitiu.com/Weird monitor bugs

Apple should have a look on this, it's not pleasant to end up with a broken setup after a machine upgrade, especially considering how much they cost.
Interesting,

looks like my two monitors are identical.
For whatever reason it has happened in 3-4 days now.


| | | | "DisplayAttributes" = {"SupportsSuspend"=Yes,"MaximumRefreshRate"=76,"SupportsActiveOff"=Yes,"PortID"=1,"ProductAttributes"={"ManufacturerID"="LEN","YearOfManufacture"=2022,"SerialNumber"=0,"ProductName"="LEN S28u-10","AlphanumericSerialNumber"="VNA7WPC5","LegacyManufacturerID"=12462,"ProductID"=25062,"WeekOfManufacture"=8},"MaxVerticalImageSize"=34,"MinimumVariableRefreshRate"=1507328,"MaxHorizontalImageSize"=62,"HasHDMILegacyEDID"=No,"Chromaticity"={"Red"={"X"=44416,"Y"=20416},"Green"={"X"=17472,"Y"=40448},"Blue"={"X"=9600,"Y"=3968}},"DefaultColorSpaceIsSRGB"=No,"DefaultWhitePoint"={"X"=20544,"Y"=21568,"Gamma"=144179},"SupportsVariableRefreshRate"=No,"AspectRatio"=15,"MinimumRefreshRate"=23,"MaximumVariableRefreshRate"=4980736,"WhitePoints"=({"X"=20544,"Y"=21568,"Gamma"=144179}),"PreciseAspectRatio"=119507,"ContinuousFrequencySupport"="None","SupportsStandby"=Yes}

| | | | "EDID UUID" = "30AEE661-0000-0000-0820-0103803E2278"

| | | | "DisplayAttributes" = {"SupportsSuspend"=No,"MaximumRefreshRate"=60,"SupportsActiveOff"=No,"PortID"=2,"ProductAttributes"={"ManufacturerID"="LEN","YearOfManufacture"=2022,"SerialNumber"=0,"ProductName"="LEN S28u-10","AlphanumericSerialNumber"="VNA7WNTH","LegacyManufacturerID"=12462,"ProductID"=25062,"WeekOfManufacture"=8},"MaxVerticalImageSize"=34,"MinimumVariableRefreshRate"=2621440,"MaxHorizontalImageSize"=62,"HasHDMILegacyEDID"=No,"Chromaticity"={"Red"={"X"=44416,"Y"=20416},"Green"={"X"=17472,"Y"=40448},"Blue"={"X"=9600,"Y"=3968}},"DefaultColorSpaceIsSRGB"=No,"NativeFormatHorizontalPixels"=3840,"DefaultWhitePoint"={"X"=20544,"Y"=21568,"Gamma"=144179},"SupportsVariableRefreshRate"=Yes,"AspectRatio"=15,"MinimumRefreshRate"=40,"MaximumVariableRefreshRate"=3932160,"WhitePoints"=({"X"=20544,"Y"=21568,"Gamma"=144179}),"PreciseAspectRatio"=119507,"ContinuousFrequencySupport"="CVT","SupportsStandby"=Yes,"NativeFormatVerticalPixels"=2160}

| | | | "EDID UUID" = "30AEE661-0000-0000-0820-0104B53E2278"
 
can ioreg or maybe a daemon like ioreg be killed / restarted in the terminal after the displays are awake, registered (and wrong order) and then maybe the order will come out correct, (even though its the same info)

I mean it does not happen every time so MacOS can for some reason handle two of the same IDs correct?
 
🌕 Lunar developer here. @peter920 explained this very well!

There's no daemon that you can kill/restart to trigger a screen reconfiguration. ioreg is not a daemon, it's just a utility for querying the hardware tree.

One easy thing that you can do to trigger reconfiguration is enabling/disabling mirroring using ⌘BrightnessDown. But I'm not sure if it helps on this specific issue.

To help fix this, I have added macOS Shortcuts in Lunar that can do a number of predefined arrangements.

Swap Screen Positions
Swap 2 screens between each other. Useful for when the system confuses the screens and positions them wrongly.
Arrange 2 Screens Horizontally
Arrange screens in a horizontal layout, one beside the other. Allows you to specify which screen should be on the left and which should be on the right.
Arrange 3 Screens Horizontally
Same as above but for three screens.
Arrange 4 Screens in a 3-above-1 configuration
Arrange 4 screens with 3 in a horizontal layout [left|middle|right] and one in the middle below the other three. Helpful for a MacBook with three external monitors.

Lunar tries to use different UUIDs for doing the arrangement, but if the system messes up the assignment of those UUIDs as well, the Shortcuts will have the same problem.

Don't be scared about the pricing. The Shortcuts feature is free, you don't need a Lunar Pro license to use them.



I'm also looking into ways to modify the serial number byte of the EDID and rewrite it into the monitor memory, to help fix this forever.

The biggest problems are:
  • Not all monitors support EDID writing
  • The write operation can fail over specific ports, hubs, docks, adapters etc.
  • It is a high risk operation. Ending up with a bad EDID can brick the monitor
 
I installed BetterDisplay a couple of days ago, and it appears to be working so far. I don't understand why though. The EDID UUID reported by ioreg is still the same for both of my identical displays. Hopefully, it's not just luck and BetterDisplay is actually doing something that has fixed the issue. Fingers crossed.
 
  • Like
Reactions: macsplusmacs
I have been following this for a while and I use an M1 MBP with an OWC TB4 Dock with 2x Samsung U28R550UQR.

For a while I was using the DP&HMDI method but 1 screen at 30fps sucks.

Since the BetterDisplay update this seems to be working and showing different UDID in the app. Very rarely the monitors are swapped when wake from sleep but a quick unplug and plug and they are fine, before they were always stuck and had to swap then in display settings. All got to do is install the app and generally good to go and I'm back on DP for both monitors.

See attached images. You can see see different UDIDs for each monitor now when you press retrive UDID and toggle between the 2 tabs.
 

Attachments

  • 1.jpg
    1.jpg
    360 KB · Views: 158
  • 2.jpg
    2.jpg
    365.7 KB · Views: 164
  • Like
Reactions: lasyos
I am running 14" MBP with two external displays and the monitors will not keep their position to the left/right every time I wake from sleep or plug back in. The monitors are arranged above my MacBook Pro (see below), with the monitor on the left connected via a USB-C dock and hte monitor on the right via HDMI.

View attachment 1881849

After waking the computer, the monitor on my left will be on the right and vice versa so I have to go into the display settings and drag-and-drop them back into place.

The only thing I can think of is that each monitor is the same brand/model and perhaps that is causing an issue. I'm not sure if this is an OS Monterey or hardware issue. I've tried ensuring I plug-in the computer in the same order or make different monitors (including the MBP display) as the 'primary' monitor, but nothing seems to work. I have not tested using a different USB C dock solution or ocnnected directly to the left monitor via a USB-C-to-HDMI adapter in case the dock is causing the issue, but that doesn't really make sense to me.

Is there a way to perhaps adjust the names or behavior of the displays to trick the OS into remembering one should always be on the left?

View attachment 1881850
My exteneral displays - same model.

I appreciate any insight or help!

Same problem with M2 Mac Mini. Sometimes even I have the two external screens in extended display mode, they displayed the same thing. Very annoying.
 
I have been following this for a while and I use an M1 MBP with an OWC TB4 Dock with 2x Samsung U28R550UQR.

For a while I was using the DP&HMDI method but 1 screen at 30fps sucks.

Since the BetterDisplay update this seems to be working and showing different UDID in the app. Very rarely the monitors are swapped when wake from sleep but a quick unplug and plug and they are fine, before they were always stuck and had to swap then in display settings. All got to do is install the app and generally good to go and I'm back on DP for both monitors.

See attached images. You can see see different UDIDs for each monitor now when you press retrive UDID and toggle between the 2 tabs.
The EDID (shown by BetterDisplay) is different for me, but not the EDID UUID (shown by ioreg). I suspect the only difference between my two monitors is the AlphanumericSerialNumber, which may not be used for generating the EDID UUID? Presumably, if the UUIDs are the same, MacOS can't distinguish between the two monitors.

I get the same experience with BetterDisplay, the monitors seem to be swapped less often, but it still happens occassionally. If I'm feeling bold enough, I may try updating the EDID on one of my monitors by changing something unimportant, such as the serial number or the week or year of manufacture.
 
Last edited:
You would think since apple really has not made their own mass-market display for years (now somewhat changed with the 27") that apple's bug reporting list on this issue would be full and a priority.

guess not.
 
  • Like
Reactions: MacStu7
I've gone ahead and changed the display name and serial number on one of my monitors. I also checked the option to allow BetterDisplay to automatically apply the custom EDID I made.

Fingers crossed that BetterDisplay can detect the monitor properly and apply the custom EDID every time.

Edit: Spoke too soon. I came out of sleep and BetterDisplay applied the custom EDID to both monitors! What a complete waste of time this is now!!
 
Last edited:
So I tried BetterDisplay, but geez I sure regret it...

Swapping MORE often now, and the DDC brightness control is reversed. Lowering brightness on Monitor 2 changes it on Monitor 1 and vice-versa. Ugh.

Apple sure has made a mess of this.
 
Last edited:
I have installed Lunar now. I reckon the swap screens shortcut is probably the best solution. Nothing else seems to work for me. @alinpanaitiu I had to restart my mac to get Lunar to appear in Shortcuts. Once I had done that, swap screens did the trick.
 
I have installed Lunar now. I reckon the swap screens shortcut is probably the best solution. Nothing else seems to work for me. @alinpanaitiu I had to restart my mac to get Lunar to appear in Shortcuts. Once I had done that, swap screens did the trick.

The Shortcuts are being registered by some system daemon, and it isn't always working as expected. A lot of devs are having trouble seeing their created actions in the Shortcuts app.

We're still at the point where a restart fixes most problems, even after all the IT Crowd jokes :)

BetterDisplay is overriding the EDID by placing the new EDID binary at a specific path expected by macOS. So the new EDID will be used by the OS for resolutions and color spaces. But macOS still computes the UUID on the original EDID before the override is seen.

I've looked into rewriting EDIDs directly into monitors to fix this problem, but unfortunately it's not supported by most monitors. Swapping screens is still the best solution we have for now.
 
I swapped from 2x 24" ProArt Displays to 1 1080P AOC 27" display for my main, and one of the 24" ProArt displays in portrait and I haven't had the issue since. Sadly this was the best way to address the issue so far.
 
If anyone is interested in the EDID rewriting method, I wrote about in the last section of this article: Decoding monitor EDID on macOS

It's not a ready-made solution, it's code that one would have to compile because I don't want people to go around running stuff blindly without fully understanding the possible consequences.

I'd be curious if anyone has any success with it. My LG monitor and TV didn't accept the EDID rewrite.
 
If anyone is interested in the EDID rewriting method, I wrote about in the last section of this article: Decoding monitor EDID on macOS

It's not a ready-made solution, it's code that one would have to compile because I don't want people to go around running stuff blindly without fully understanding the possible consequences.

I'd be curious if anyone has any success with it. My LG monitor and TV didn't accept the EDID rewrite.

LG 5K 27"?
 
LG 5K 27"?
No, it was an LG 27UD88-W 4K, one of the first USB-C monitors that appeared after the MacBook Pro with USB-C only was announced.

It just died one week ago, not turning on anymore. I guess I finally broke its EEPROM with my multi-million DDC reads and writes testing.
 
Last edited:
  • Sad
Reactions: macsplusmacs
I'm not sure why exactly this stopped happening to me - could be an update, or could be that I started using the program Stay. But I haven't had this happen in a few weeks. The displays tend be differentiated in the settings as well, one of them will have a '(1)' the end of the name, indicating that the OS knows which display is which.
 
In case others are still encountering this, I added another useful shortcut to Lunar that can help with 3 or more monitors: Fix Monitor Arrangement

Download latest Lunar to get it as the update is rolling out slowly.




How it works:

  • on each monitor you'll see a number
  • type the numbers on the keyboard from left to right (start with the number on the leftmost monitor)
  • Lunar will arrange the monitors in the order of the typed numbers
press `Esc` to cancel or `Enter` to partially arrange the monitors selected so far
 
  • Like
Reactions: macsplusmacs
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.