← back to blog

Updating your antidetect browser without breaking profiles

antidetect updates fingerprinting profiles

The update ran overnight because I let it. By the morning thirty one profiles were reporting a browser version they had never reported before, and one of them was halfway through a review that it did not survive.

I still cannot prove those two facts are connected. That is a real problem with this whole topic and I will come back to it at the end.

What is not in doubt is the mechanism. A profile is convincing only because it is internally consistent, and a version update reaches under the profile and swaps the thing producing that consistency.

The engine is the fingerprint. The panel is decoration

Every tool in this category is a browser engine with a management layer bolted on top, and the engine is nearly always Chromium. When the vendor ships a new client, most of what lands on your disk is that engine moving up a version, or several versions at once if you skipped a couple of releases.

The settings panel picks a handful of declared values. Timezone, language, screen size, maybe a user agent string you typed. Everything else in your fingerprint is produced by the engine at runtime, and you have no field for any of it.

So an update moves things you never chose:

  • The user agent, and the client hints behind it, including the full version list that most bot defences request.
  • The JavaScript surface. New versions add methods and objects and retire others, and any page can enumerate what exists.
  • Font rasterisation, canvas rounding behaviour, the WebGL extension list.
  • Whatever noise your tool layers on top, which some vendors reseed when a profile is rebuilt against a new engine.

A profile that has told the same story for eight months starts answering all of those questions differently, in one night, from an address the platform already knows well.

The half updated state is worse than either version

A clean jump is survivable. Hundreds of millions of real users update their browser every month and nothing happens to their accounts. That is the whole reason updating is possible at all.

The state that gets you caught is the one nobody intends. The engine moves and the declared string does not, or the string moves and the engine does not.

It happens more than you would expect. Some tools respect a user agent you pinned by hand and keep serving it after the engine changes underneath, because you set it once and the tool assumes you meant it. Now the string announces version 141 and the API surface belongs to 132. No real browser exists in that condition. Nobody on earth runs an engine that claims features it does not have.

At that point you are not wearing a disguise, you are wearing a serial number. Version 141 is ordinary. Version 132 is ordinary. The pairing of the two is something only automation produces, and it is trivially cheap to test for.

I have hit the mirror image of this as well, where the client updated the reported version and left the old engine in place because an engine download had failed silently. Nothing in the interface said anything was wrong.

Refusing to update is also a trap

The obvious response to all this is to freeze. Turn updates off, stay where you are, keep the fingerprint that has worked. I did that for a while.

It works for about two months.

Browser versions have a distribution in the wild and it keeps moving. The version that is common today is uncommon in ninety days and close to extinct in six months. A site that buckets traffic by version does not need to flag you as suspicious. It just needs to notice that your bucket has four people in it.

Rarity was the thing you were trying to avoid in the first place. An old build does not hide you, it labels you.

The second half of it is less philosophical. An engine nobody is patching is an engine with published holes, and some of those holes are the ones that leak the real machine underneath your spoofing. Those fixes only exist in newer versions.

So there is no defensible “no” here. Never updating loses slowly and updating carelessly loses fast. The only decision available to you is timing and batching.

A date you picked beats a prompt you were handed

I do not update when the tool asks. The prompt arrives when the vendor’s release train arrives, which is a fact about their engineering calendar and has nothing to do with what my accounts are doing that week.

Once a month, on a day I chose, with three hours available and nothing under review. That is the entire policy and it has been worth more than any setting inside any of these products.

Turn automatic updates off wherever the tool allows it. That is the first thing I change on a fresh install. An update that arrives on its own arrives mid session, which is the single worst moment for a fingerprint to change shape.

And any account with something pending stays behind. A verification in progress, an open appeal, a held payout, anything a human being might be reading this week. During a review the account is under more scrutiny than at any other point in its life, and that is not when you want its browser to become a different browser. Leave it on the old version until the thing closes.

Five at a time, cheapest first

Moving all thirty one in one night was the actual mistake, more than the update itself. If any of it was visible from outside, it was visible as a set.

Now it goes in fives, spread across two weeks. The low value profiles go first, the throwaways, the ones I would shrug at losing. Then four or five days of ordinary use before the next group moves.

The cost is two weeks of mild irritation. What you buy is the ability to stop halfway.

The diagnostic value is the part people underrate. Move everything at once, watch things go wrong, and you have learned nothing at all about which change caused it. Move five, watch two of them wobble, and you have something you can act on before the other thirty five are exposed to it.

Export first, because rollback is not on the menu

Vendors do not keep the old engine on your disk, and reinstalling an older client usually will not give you the old fingerprint back, because that fingerprint was generated by code that no longer exists on the machine. Rollback is not a feature in most of this category and you should not plan around it appearing.

The only recovery you have is the one you made yourself. Before the first profile moves, export everything the tool is willing to hand over: cookies, local storage, the profile configuration, in whatever format it offers.

Write one file per profile, named for the profile. When you eventually reach for this, you want one account back, not a forty profile archive you have to unpick.

Keep it off the working drive. The one time I genuinely needed a backup, the disk was part of the problem.

None of this restores a fingerprint. It restores sessions and settings, which is most of what you actually lose in the kind of failure that makes you go looking for a backup.

Two profiles, four minutes

After each group moves, take two of them to a fingerprint checker before they touch anything that matters.

Ignore the score. The score is close to meaningless and I have written about why elsewhere. What you are reading is the version numbers against each other. Does the user agent version match the client hints version. Does the declared platform match. Is the timezone what it was yesterday. Does the engine the page can actually measure agree with the engine the profile claims to be.

Four minutes each, and it catches the half updated state before a live site does. I have caught it twice this way. Once a user agent had been pinned by hand a year earlier and I had completely forgotten doing it. Once the client had not applied the new engine to profiles created before some cutoff date it never mentioned anywhere.

Why I let my fleet drift apart on purpose

Here is the part experienced operators argue with me about.

The standard advice is that every profile should sit on the current version, because current is the biggest crowd and the biggest crowd is the safest place to stand. For one profile in isolation that is correct.

It stops being correct when you own forty and all forty step to the next version on the same evening. Real populations do not move like that. Real people update across a spread of days and weeks, and a meaningful share of them have not updated since March.

So my profiles sit across three or four versions at any given time, deliberately, and they cross in small groups on different days. The counterargument is that a uniform fleet is far easier to manage, and that is true, it is. I still think a synchronised jump is the thing that groups accounts together, and management convenience is a weak reason to hand a platform that pattern.

What I have not proved

None of this is an experiment. I have no visibility into anybody’s risk engine, and neither does the person selling you the tool.

What I have is one bad night. Thirty one profiles moved together, three had trouble in the week after, against a background rate of roughly zero. The groups of five since then have not produced anything similar. That is an anecdote with a sample size of one afternoon, and I would treat anyone claiming a cleaner measurement than that as someone who has not measured it either.

It changed how I work anyway, because being careful costs two weeks of patience and being wrong the other way costs an account. That trade stays easy even on thin evidence.

A careful update also buys less than people hope. It does not make a weak profile strong. If the network underneath is wrong, or the account behaves nothing like the person it claims to be, the version number was never the problem. All you have done is remove one event from a long list of things that could have gone wrong, and most of the other entries on that list are invisible from where you sit. This one is not, which is exactly why it is worth spending an afternoon on.

Full reviews and the tools I actually keep installed are at Anti-Detect Review.

Get new guides and videos first — join the Telegram channel.

need infra for this today?