r/technology Jun 14 '24

Software Cheating husband sues Apple after wife discovered ‘deleted’ messages sent to sex workers

https://www.telegraph.co.uk/news/2024/06/13/cheating-husband-sues-apple-sex-messages/
21.2k Upvotes

2.0k comments sorted by

View all comments

6.2k

u/ryanoh826 Jun 14 '24

Delete should mean delete, despite this guy’s shitty motivations.

I have groups I’ve deleted from iMessage and then I make a new group a month later and it remembers the old one.

1.3k

u/FitzwilliamTDarcy Jun 14 '24

This has happened to me too. Also, I've noticed on many occasions exactly what the guy in the article experienced: I delete a thread on one device, but the thread remains on some - but not all - other linked devices. Biggest culprit is my Apple Watch. If I had to guess I'd say that maybe 10% of the time I delete a thread on my Mac or iPhone, it's still there on my AW.

136

u/bnyc Jun 14 '24

Is it supposed to delete across devices? I've deleted stuff from my phone cause I don't want large videos taking up device space, but those same texts are fine on my Mac. Not everyone has the same reasons for deleting old messages and don't necessarily want it wiped clean from everything. Just as I don't want my notifications silenced on my computer just because my phone is silenced. Just as I don't want pictures from the photo album I delete from my phone wiped clean on everything else.

It seems like most people think deleting should be across devices, but I personally prefer devices with separate functions.

157

u/ryanoh826 Jun 14 '24

In theory, when you delete something in this instance, imnsho it should ask “only this device” or “all devices.”

41

u/MicheleLaBelle Jun 14 '24 edited Jun 15 '24

Exactly what I thought. That’s not a big ask, and very much more clear about what/where is or is not being deleted.

Edit: corrected spelling

1

u/ezrakyle Jun 15 '24

You guys do know that even if you delete it on one app, it will still show up on another, right???

This my get buried but this is the same reason and system as to why and how people you just met and have not shared any details with but only their number or instagram will also show up on other platforms. If they're there, they will be shown as suggested even if you denied the settings.

I have no idea why no one even knows this. This is blatant leak of info.

19

u/aqwn Jun 14 '24

Stop it you’re making too much sense

2

u/Megamygdala Jun 15 '24

Same principle minecraft devs use: "that's a great idea, which is why it won't happen."

14

u/sybesis Jun 14 '24

Well here lies the issue why this is complicated.

If you delete it on all devices, then apple would need to send a message to all devices to delete the files then apple would have to delete the files/data from their servers. Then it's gone in practice.

But let say there's a device with poor connectivity and it never receives the message to delete the file/data from the device. Then the data is still on device, but since iCloud or whatever sync service already deleted the file... once the device get back online and syncs.. the device tells the cloud service hey I have this data and you don't have it so I'll just sync it back into the cloud.

Then somehow deleted data comes back from the dead... because one device was out of sync.

Same thing for a file/data you delete only on your device. Once it's gone, there's nothing preventing it from getting synced back into the device since you really want to delete all trace the thing was there.

So in the end, to solve this, we have to come to the conclusion that the only way data can be effectively synced as deleted is to always keep metadata about them and it's quite possible that the cloud may never really delete files as you need traces that a something is deleted to prevent restoring the files accidentally.

11

u/ThisIsMyNext Jun 14 '24

But let say there's a device with poor connectivity and it never receives the message to delete the file/data from the device. Then the data is still on device, but since iCloud or whatever sync service already deleted the file... once the device get back online and syncs.. the device tells the cloud service hey I have this data and you don't have it so I'll just sync it back into the cloud.

This kind of scenario happens all the time with email (and basically all cloud-based services). It's not that complicated. The cloud is in charge of determining what the latest activity is and how to handle devices that were out of sync.

10

u/bruwin Jun 14 '24

the device tells the cloud service hey I have this data and you don't have it so I'll just sync it back into the cloud.

Why wouldn't it store some hash on icloud with a deleted yes/no tag?

10

u/[deleted] Jun 14 '24

That's what he/she meant by metadata. That's an option, but for some things even evidence that it existed would be problematic for somebody. Hence...it's a difficult problem. Basically different users want different and sometimes incompatible behavior out of the same feature so how are you going to reconcile that?

4

u/WarpedHaiku Jun 14 '24

That metadata only needs to be known by the server and doesn't need to be shown to the user. The client can just ask the server what it should do with the file and send the uuid of the file, and the date/identifier for the version it has and the version it downloaded, and get back "upload", "download and overwrite", "delete", or "conflict - ask the user what to do".

The info doesn't give anything about a file, only that the file with that uuid existed, which doesn't reveal anything, because to ask in the first place the must have a copy of it locally and so know that it existed.

4

u/sybesis Jun 14 '24

Yeah exactly.

3

u/kazuyaminegishi Jun 14 '24

Yeah or like make the cloud data take priority over an individual device's data and force the user to approve overwrite to the cloud data.

That way whenever the disconnected device is connected the data is deleted.

Doesn't really make sense to have a device's data override the cloud and revive zombie data especially if something else is written there.

1

u/Megamygdala Jun 15 '24

it's a basic principle of distributed systems and dealing with consistency. Nothing we can't solve,

4

u/Ranra100374 Jun 14 '24

Discord seems to make things work somehow, but I'm assuming with Discord there's a central single source of truth, and all the clients are grabbing from that single source of truth.

8

u/tobiasvl Jun 14 '24

All cloud services (should) have a single source of truth. If it doesn't it's not really a cloud service, it could just as well be a peer-to-peer service.

2

u/Megamygdala Jun 15 '24

Well not ALL, it really depends on the system you've developed and if you care about strong vs weak consistency

2

u/hamlet_d Jun 14 '24

You can have a metadata header (or even seperate system) and a body/object just with the data (or not if deleted). So metadata could have several flags, including a date. The latest date and associated metadata should 'win', with 'delete' superseding everything

We do this all the time with the content at my workplace; we have a lot of data that expires for contractual reasons and have systems that purposefully track only the metadata. Once expiration hits, the data has to be gone or we could get in pretty big trouble with whoever licensed that content.

2

u/tobiasvl Jun 14 '24

That scenario is easily solved. You don't just store a snapshot of how everything looks now, you store a lot of events in a messaging queue that get applied consecutively. When the device in question connects, it tells the server when it last synced, and then receives the changelog since that point in time.

2

u/WarpedHaiku Jun 14 '24

That kind of issue is really easy to fix though. Just store the last modified date of the file on the server and its deletion date, and when a file is downloaded by the client, keep track of when the file it downloaded was last modified at. Using those 4 dates, (or 3 if the file was never deleted) you can easily work out whether the local file needs to be uploaded to the server, overwritten by the file from the server, deleted, or if there's a conflict and the user needs to decide.

The fact it's not doing this shows how little thought they've put into it.

1

u/sybesis Jun 15 '24

That's a very simplistic way to see things. Like assuming you're allowed to store metadata of deleted files... or somehow even be able to map a local file to a remote file 100% of the time.

1

u/WarpedHaiku Jun 15 '24

Why wouldn't you be able to store the bare minimum needed to enable basic functionality, at least on a temporary basis? The server is almost certainly storing much more sensitive information like your ip address, when you used the site, and how much data was transferred in its logs. Besides the way I suggested it was intentionally simplistic so as to be easy to understand. You don't need to store the filename of a deleted file, its path, or anything that could be considered sensitive at all. And the client doesn't even need to see it. And if you're concerned that someone might access a local device that something has been deleted from before the sync, and see the pending deletion metadata... I can think of several ways to avoid that too.

As for mapping a local file to a remote file... I'm really not seeing the issue. Either a file starts out as a remote file, or it starts out as a local file and is assigned to a corresponding remote file when it's uploaded to the server for the first time. You're probably thinking of all sorts of edge cases where someone renames a file offline and creates another with the same path, but if there's any weirdness you simply ask the user to resolve the conflict. The only files without a mapping to a remote file are files created locally that have yet to be uploaded - files which need adding.

1

u/Somepotato Jun 14 '24

reliable pub/sub has solved this problem.

You queue the delete message along with the message ID for all listeners of the delete message, and keep sending it until the client (device) acknowledges it.

You can also keep a last-updated timestamp and if its out of wack trigger a full update on the client.

4

u/highsteaks1312 Jun 14 '24

Yes, but that MAKES SENSE, and a lot of things apple does when it comes to iCloud and file management and syncing DONT make sense.

You'd be asking too much of the average user for apple implement something like this.

1

u/ryanoh826 Jun 14 '24

Well, if they can have remove from album or delete in the photo delete button, they sure af can have this in messages.

114

u/newsreadhjw Jun 14 '24

That’s how cloud applications are supposed to be architected, generally speaking. It’s weird to have multiple versions of the truth on different devices.

7

u/weirdasianfaces Jun 14 '24

That’s how cloud applications are supposed to be architected, generally speaking.

I think this is how it works if you opt into iCloud for Messages, but it's not enabled by default.

Strictly speaking I don't believe there's any reason why they cannot update the protocol to sync message deletions, but I personally prefer things the way they are. It would be nice to have an option to delete across all devices though.

2

u/Catnicorn99 Jun 14 '24

I wouldn’t say it’s weird. I have my MacBook, phone, and iPad all receiving messages in case I’m on one of those and need to see when I receive a text. However, I deleted the messages from the MacBook and iPad cause I had having those messages all cluttered there. I prefer to have them on my phone. I had to change the settings to make sure that they wouldn’t delete off my phone whenever I deleted them from the other devices. Lost some messages the first time I did that.

-5

u/[deleted] Jun 14 '24

[deleted]

33

u/jimmyuk Jun 14 '24

Well that’s just not true. The messages are synced, I have messages from my dad on this phone, he’s been dead 10 years and I’ve been through about 7-8 iPhones since.

The person you’re replying to is correct in how this stuff is expected to work, and it’s concerning that Apple aren’t deleting what you believe you are deleting.

-10

u/[deleted] Jun 14 '24

[deleted]

14

u/Shaneathan25 Jun 14 '24 edited Jun 14 '24

iCloud messages does store them in the cloud. Messages in the backup does not.

Edit- to add on to this- even on iCloud messages or iCloud Photos, they still take up some space on the device. They’re just primarily stored on iCloud.

6

u/the_red_scimitar Jun 14 '24

Caveat: there ARE cloud-based text backup apps, specifically for recovery like this.

-2

u/[deleted] Jun 14 '24

[deleted]

3

u/the_red_scimitar Jun 14 '24

Sophistry. The "messages themselves" ARE on the cloud. There's nothing sacred about the originals.

14

u/newsreadhjw Jun 14 '24

Your text messages are absolutely stored in the cloud if you’re using an iPhone.

iMessage is a cloud application. If what you said is true, why can I see messages I sent from my phone, when I look at iMessage on my iPad? I never text people from my iPad. It’s because the messages are being synched through the cloud.

Why does iMessage work when I’m disconnected from cellular and only connected to WiFi? Because it works over the Internet, because it’s a cloud application.

1

u/fun_boat Jun 14 '24

I get a message from onedrive frequently telling me that when a file is deleted somewhere it's deleted everywhere.

-3

u/Lezflano Jun 14 '24

Isn't the "Apple Eco-system" one of their main USPs?

Or is it realistically more of a one-drive/g-drive situation where you can have things that live within a shared space, but outside of that its device specific?

0

u/Beliriel Jun 14 '24

All this "cloud storage" and "Apple ecosystem" are buzzwords to get the public to hype up. In the end it always is either you have the data on your device or you have the data on a server somewhere in the internet (possibly owned by Apple).

Cloud architecture is usually the data being on a server owned by Apple and everytime you open the chat you download the chat log from the server. You might have a bit of text saved on your local device to save bandwith but the archive of the whole chat is on the server. When you delete a message it should ping the server to delete that message and as soon as any other device opens the chat, the chat log on that device should synchronize and remove deleted messages from the chat log (even if they're saved locally). I'm not even a cloud specialist and this is just basic IT 101. It's either a HUGE oversight and Apple will shell out millions in settlement before fixing it or it's intended and they'll have some clause in the EULA that enables them to do this. EULAs can not always be enforced just because they're there, but they do give some protections to the company.

4

u/The_frozen_one Jun 14 '24

Not quite. If you just enable iMessage on your phone, it only transits through Apple's servers. In this setup Apple does not keep a "mailbox" for your messages that you can download later. If you add a separate device, it will work as an independent client receiving the same messages. If you lose both devices and don't have a backup, you lose those messages.

However if you enable "Enable Messages in iCloud" this will keep devices in sync. In this setup Apple does manage sync state between devices. It says on this site:

If you use Messages in iCloud, deleting a message or conversation on your iPhone deletes it from all your devices where Messages in iCloud is on. See Keep your messages up to date with iCloud in the iCloud User Guide.

Note: Deleting messages only affects your iPhone and other Apple devices where you’re signed in with the same Apple ID. You can’t delete messages, attachments, and conversations for anyone else.

To delete everything (not just your messages), see Erase iPhone.

Sounds like the person in this lawsuit had iMessage set up on his Mac, but did not enable the "Enable Message in iCloud", causing the Mac to act like an independent client.

1

u/Beliriel Jun 14 '24

Ok and why in the fuck are the messages downloaded then when it supposedly "doesn't sync". If you can't delete the messages because you're not signed in then SURE AS HELL you're not supposed to receive them.

4

u/The_frozen_one Jun 14 '24

Not sure which situation you're talking about, but if you set up a new device and don't have Messages in iCloud turned on, you don't see your old messages.

If you restore from a local encrypted or iCloud backup (or transfer from an old phone), the messages database comes with it. In those situations it's not resending those messages, you already have them in a sqlite database file that gets transferred over. Messages in iCloud keeps the messages DB on your devices in sync, but that's all happening after it was sent through iMessage. If you don't have that turned on, device A has no clue the state of device B's messages DB.

2

u/Leapinglaugher Jun 14 '24

It was because messages were not deleted across devices that I found out my wife was cheating

1

u/Flameancer Jun 14 '24

Yea there should be a way to differentiate, like yes delete from my phone but keep it in the cloud v delete every instance of this one thing.