The Grenadier Forum

Register a free account today to become a member! Once signed in, you'll be able to contribute to the community by adding your own topics, posts, and connect with other members through your own private inbox! INEOS Agents, Dealers or Commercial vendors please use the contact us link at the bottom of the page.

New Year Service Overdue Bug

The software on this car sucks so bad. Adas warnings all over the place and now this. Worst software of any car I’ve ever had by far.

Software isn’t that hard. Why did they have such an incompetent developer on the lead.
 
Here is a condensed summary of all the posts to date (through post 658). I have categorized significant posts by users into three groups: Symptoms, Proposed Causes and Proposed Solutions. When a reference is helpful, I call out the first user I noticed to post the information and link to their post.


SYMPTOMS

- An error message was first seen on January 1, 2026. It may have first appeared at 0000 GMT (@Logsplitter, post 79) or 0100 GMT (@scottg , post 467) and update at this time every day.

- The reported error message is formatted on the main screen as . . .

"Service overdue ####d" in the United States
"Service overdue #### Day" in Australia, UK, Belgium and Indonesia
"Wartung überfällig ####d" in Germany (although some displayed in US English)
"Mantenimiento vencido ####d" in Spain

. . . where #### is a number between 1492 and 2668 with one report of 6410 (@rwhitinger , post 321). Many of these reports have not been normalized to days overdue on January 1, so the actual service overdue offsets likely vary slightly with the reporting date.

- On January 1, 2026, some (but not all) vehicles with the date set to automatic had their date reset to January 1, 2032. Note this is SIX years ahead and not five as some have posited. (@grond , post 6).

- Three users report no error message (@Steve.B , @badr and @Jean Mercier , all with 2023 model years). (Can't find user @badr - German language forum?)

- Several reports of heater controls also affected, but these appear to be unrelated (@rickydoc , post 250; @Baron von Teuchter , post 288). One user reported heated seats also did not work (@ORSO , post 297).

- At least one report of Android Auto also affected, but later resolved by setting the date to auto (@mirwantandyo , posts 485, 487).


PROPOSED CAUSES

These proposed causes cannot be proven or disproven with the current data set:

- There's a bug in the library of functions used for the firmware (@Korg , post 36). Neusoft supplies the infotainment system (@Clark Kent , post 380).

- There's a bug in the AUTOSAR Classic software provided by Bosch subsidiary ETAS that adds 2050 days of time to the service overdue counter (@Keato , posts 611, 614).

- A bit overflow for 11-bit or 12-bit variables (@HereinDaRockies , post 231).

These proposed causes do not explain all the data submitted by users:

- Errors in converting binary numbers (@Glen , posts 151, 185).

- Five years was erroneously added to the correct service due date (@scottg , posts 418, 459; @Glen , posts 490, 550; @Michael H. , post 527).


PROPOSED SOLUTIONS

There is only one solution that currently works:

- When the error message is displayed, suppress it for the current session by clicking the button on the end of the indicator stalk twice. (@Itsdchz , post 56; @IG Pop , post 639). Some users report having to click three times (@Glen , post 647).

Here are other proposals which do not work:

- Have the dealer reset the service interval. Some customers had this done until Ineos issued guidance to not do this until the root cause has been corrected. (@Green Gren , post 433; @RY-Journeyman , post 549; @n545ca , post 557).

- Ineos later issued guidance that if service is due, go ahead and have the service performed and the service reminder reset. Ineos says this will "remove the message permanently." (@IG Pop , post 639).

- Use a BMW reset tool to reset the service reminder. This has been thoroughly debunked in other threads.

- For those with an automatic date set to 2032, setting the date to manual then back to automatic produces a correct date display. This does not resolve the service overdue error (@Keato , post 614).

- Changing the date to manual and setting it to a date in 2025 does not resolve the problem. (@nathanwind , post 178).

- A reboot of the head unit does not help (@TheDocAUS , post 55).

- Manually set the date to 2026, turn the vehicle of and lock the doors, come back 30 minutes and the service due error is resolved. This does not work. (@scottg , post 515; @Glen post 528).

<end of text>
Excellent overview, Glen -- you brought a lot of the data and information together in this one comment. I have been busy and haven't had time to look at the table you create many posts back.

It does sound like there are a large number of vehicles (most?) that experienced identical(?) changes in adding of days to the service counter, but it appears some vehicles had different changes occur, and some had no changes occur?

For these:

"- On January 1, 2026, some (but not all) vehicles with the date set to automatic had their date reset to January 1, 2032. Note this is SIX years ahead and not five as some have posited. (@grond , post 6)."

Can we get a sample of the current XXXXd service overdue values those who had 6 years added to plus the date, time and time zone those service overdue values were read? Having console date showing 2032-01-01 doesn't necessarily mean 6 years instead of 5 was added to the service counter; having some of those individuals provide service overdue values as described would help us determine if 6 years worth of days was added, or 5, despite the console date reading 2032.

"- When the error message is displayed, suppress it for the current session by clicking the button on the end of the indicator stalk twice. (@Itsdchz , post 56; @IG Pop , post 639). Some users report having to click three times (@Glen , post 647)."

I wouldn't label this as "one solution that currently works", but as "a temporary way to stop the console service overdue warnings." For me, I had to hit Menu (or maybe it was Options) first, then the trip button, as just hitting Trip 2x or 3x didn't work for me. Maybe the console needs to be in a certain state or menu (not Apple CarPlay onscreen for example, which was onscreen at the time) for the trip trick to work? I know, I'm splitting hairs :)

Then again maybe this is too much effort, and we just wait for INEOS to release the procedure to fix. Without (most) everyone's data in the data set to include number of service days overdue, date and time that SDO was read, the timezone the vehicle is set to, Y/N as to whose console read a future date and what date that was (and that date could have auto-reset so I'd not know mine showed 2032-01-01 at first), very difficult to do reliable analyses (though this is fun!), and without access to ODB tools etc. we're shooting in the (semi) dark. Wouldn't it be cool to have a site where Grenadier owners could input their vehicle info once, then update with issues they have, results, etc. that was accurate and that could be used as a better base for this and other future analyses.

/s.
 
My automatic date went to 01/01/2016 rather than 01/01/2032 that many seem to have reported. That upset Android Auto until I changed the date to current.
 
I spoke with my Australian service manager today (my last few days here in AU). He said Ineos had advised them not to reset the service warning just yet as they don’t yet know what caused the fault so don’t know how long the reset would last or what else it might screw up if the service people simply just reset it. Although the mechanics already had reset some local customers they won’t do any more until they get the green light or a fix from Ineos.
Hello there from the US. Just visited dealer today and they went ahead and reset the service warning. Drove back 2.5 hours with several stops and the alert did not appear. No noticeable impact to drivability either. Dealer did not indicate whether or not they were resetting under advisement from INEOS.
 
Software isn’t that hard.
I’m guessing you probably haven’t had the experience of writing code and putting it into a production environment.

Writing good code is hard in that you only get to pick two of these: cheap, fast, good. And project pressures almost always seem to force cheap and fast . . . so not good. Even when you pick good, there are many things a programmer won’t be able to know until code is rigorously tested and patched. It’s pretty easy to skip some of the testing and patching with time pressures or have all previous testing nullified by last-minute changes forced by people who don’t know any better.

The software in my mid-1970’s TI-35 was pretty good, but it was also some of the simplest software I’ve ever used. Since then, the complexity of programming has exploded, not like a firecracker - more like on the scale of a supernova. So given the constraints and complexity of today’s environment, software is hard.
 
I’m guessing you probably haven’t had the experience of writing code and putting it into a production environment.

Writing good code is hard in that you only get to pick two of these: cheap, fast, good. And project pressures almost always seem to force cheap and fast . . . so not good. Even when you pick good, there are many things a programmer won’t be able to know until code is rigorously tested and patched. It’s pretty easy to skip some of the testing and patching with time pressures or have all previous testing nullified by last-minute changes forced by people who don’t know any better.

The software in my mid-1970’s TI-35 was pretty good, but it was also some of the simplest software I’ve ever used. Since then, the complexity of programming has exploded, not like a firecracker - more like on the scale of a supernova. So given the constraints and complexity of today’s environment, software is hard.
It's magnitudes more difficult writing embedded software, additionally so if you're building on top of proprietary systems that you can't see source code for and can't change/fix but have to work around, much worse if you have to cobble together multiple proprietary systems and make it all work together. It does sound easy from the outside, but it really isn't, even with a good team and technical leader. I think much of it is the complexity Glen mentions here: new programming languages that aren't really best or needed but they're shiny and new, poor design / architecture, view towards refactoring rather than 'temporary fixes' to code, and so on. Code Complete by Steve McConnell is one of the best books on this topic; John Ousterhout has written a book, A Philosophy of Software Design; the classic by Fred Brooks: The Mythical Man-Month, and others go into great detail on it. Probably TMI, sorry.
 
All great info, but for a guy who has to call his kids when his phone updates…..it’s all Greek to me. I truly appreciate all the work this software brain trust is putting into the issue. I do think it is a little comical and we have to sit back and laugh a little. I am super-glad I am not on the team at Ineos right now as I am sure there have been some serious ass chewing going on at the main office. Lyn seems really nice but I bet she could could rip any of us a new one without thinking about it too hard about it! LOL!!

Anyway, thanks again to all of you.
 
All great info, but for a guy who has to call his kids when his phone updates…..it’s all Greek to me. I truly appreciate all the work this software brain trust is putting into the issue. I do think it is a little comical and we have to sit back and laugh a little. I am super-glad I am not on the team at Ineos right now as I am sure there have been some serious ass chewing going on at the main office. Lyn seems really nice but I bet she could could rip any of us a new one without thinking about it too hard about it! LOL!!

Anyway, thanks again to all of you.
We all need a laugh. If you remember the UK Hamlet cigar commercials back in the day, picture our Grenadier owner, racing down the ravine, vehicle tipping over, crashing into a wall, onto one side. Driver struggles and climbs out the window, dressed in safari gear, stands on top of the driver door, hands on hips, console bonging away, smoke rising from under the hood, surveying the situation. Sighs, then pulls out a Hamlet and lights it up, all to that music.

View: https://www.youtube.com/watch?v=t4ToAv6Ddew&list=PLQpNagDj3DtMe1B45xKELW6KaXVCsCI7p&index=20


So, next time you see the Service Overdue warning; your ADAS nannies you about stepping 0.001 km over the speed limit, or your front drive shaft falls off, sit back, relax, and have a Hamlet. ;)
 
I wouldn't label this as "one solution that currently works", but as "a temporary way to stop the console service overdue warnings." For me, I had to hit Menu (or maybe it was Options) first, then the trip button, as just hitting Trip 2x or 3x didn't work for me. Maybe the console needs to be in a certain state or menu (not Apple CarPlay onscreen for example, which was onscreen at the time) for the trip trick to work? I know, I'm splitting hairs :)
Back when early owners shared the maintenance bongs and low fuel warnings, @Jean Mercier noted that sometimes the stalk-button-push freezes. I have experienced this and used his solution to touch a button on the screen menu, returning the 2x click.
 
Back when early owners shared the maintenance bongs
Screenshot 2026-01-07 115855.jpg
 
At present yes and by some margin.

The Tazzie Devil just gobbled up the Honey Badger to take the lead, with King Korg now far behind.

TALLY
Rok Dr 1869 days
Korg 1899 days
NixGrenadier 1940 days
ddv 1945 days (Aug 2023)
Camilondo 1953 days
Ex-defender driver 1968 days
TheDocAUS 1968 days (Feb 2024)
Badger4x4 2007 days
Tazzieman 2137 days
Gerrymac 1944 days
 
More wild speculation . . .

. . . so if INEOS only used a 10-bit two's complement for signed binaries, they would truncate values with modulus 1024 (keep subtracting 1024 until you get a number smaller than 1024). In other words, they don't expect someone to go more than 1024 days (2 years 9-1/2 months) without getting a reset. Using that scheme, I generated a table showing the error message days in the first column and your expected service date in the far right column. Does this jive with reality for anyone?

Code:
Error Msg / Modulo 1024 / 10-bit Binary / Days Since Service Due / Service Due Date

1840 816 1100110000 -208 Jul 28, 2026

1841 817 1100110001 -207 Jul 27, 2026

1852 828 1100111100 -196 Jul 16, 2026

1852 828 1100111100 -196 Jul 16, 2026

1868 844 1101001100 -180 Jun 30, 2026

1869 845 1101001101 -179 Jun 29, 2026

1890 866 1101100010 -158 Jun 08, 2026

1892 868 1101100100 -156 Jun 06, 2026

1894 870 1101100110 -154 Jun 04, 2026

1899 875 1101101011 -149 May 30, 2026

1906 882 1101110010 -142 May 23, 2026

1915 891 1101111011 -133 May 14, 2026

1927 903 1110000111 -121 May 02, 2026

1931 907 1110001011 -117 Apr 28, 2026

1932 908 1110001100 -116 Apr 27, 2026

1933 909 1110001101 -115 Apr 26, 2026

1937 913 1110010001 -111 Apr 22, 2026

1940 916 1110010100 -108 Apr 19, 2026

1945 921 1110011001 -103 Apr 14, 2026

1950 926 1110011110 -98 Apr 09, 2026

1953 929 1110100001 -95 Apr 06, 2026

1967 943 1110101111 -81 Mar 23, 2026

1968 944 1110110000 -80 Mar 22, 2026

1968 944 1110110000 -80 Mar 22, 2026

1975 951 1110110111 -73 Mar 15, 2026

1989 965 1111000101 -59 Mar 01, 2026

1903 879 1101101111 -145 May 26, 2026

1994 970 1111001010 -54 Feb 24, 2026

1995 971 1111001011 -53 Feb 23, 2026

2007 983 1111010111 -41 Feb 11, 2026

2007 983 1111010111 -41 Feb 11, 2026

2007 983 1111010111 -41 Feb 11, 2026

2009 985 1111011001 -39 Feb 09, 2026

2022 998 1111100110 -26 Jan 27, 2026

2024 1000 1111101000 -24 Jan 25, 2026

2025 1001 1111101001 -23 Jan 24, 2026

2044 1020 1111111100 -4 Jan 05, 2026

2048 0 0000000000 0 Jan 01, 2026

2057 9 0000001001 9 Dec 23, 2025

2057 9 0000001001 9 Dec 23, 2025

2059 11 0000001011 11 Dec 21, 2025

2074 26 0000011010 26 Dec 06, 2025

2095 47 0000101111 47 Nov 15, 2025

2097 49 0000110001 49 Nov 13, 2025

2097 49 0000110001 49 Nov 13, 2025

2106 58 0000111010 58 Nov 04, 2025

2107 59 0000111011 59 Nov 03, 2025

2137 89 0001011001 89 Oct 04, 2025

2150 102 0001100110 102 Sep 21, 2025

2156 108 0001101100 108 Sep 15, 2025

2190 142 0010001110 142 Aug 12, 2025

2253 205 0011001101 205 Jun 10, 2025

2367 319 0100111111 319 Feb 16, 2025

2458 410 0110011010 410 Nov 17, 2024

Notice that users who got an error message of >=2048 would have already received a legitimate service due message on or before Jan 1, 2026.

This doesn't work for my case. My service overdue was 2051d on 1 Jan 2026 and puts me between 2048d and 2057d, or 1 JAN 2026 and 23 DEC 2025 for a service due date.

Note that my error message is >=2048, but my last service reset was 21 May 2025, so I would not have already received a legitimate service due message on or before Jan 1, 2026, but would have on 21 May 2026.

Love what you did here, I tried with 11-bits as I figured highest bit might be used for the sign, but that didn't work out and 10-bit doesn't appear to either.

I ran all of these XXXXd through the Tcl script (assumed all the XXXXd were what they were on 1 JAN 2026), and here's what I get for each -- first column is now the Last Service Date, i.e. when your Grenadier's service counter was reset -- add 5 years to get the actual Last Service Date, the next service date, add 6 years. The MM and DD are same, only the years shift (so only 5 or 6 years of days were added? I think 5 years worth of days). Note because it matters what date you read your XXXXd value, it may be off a few days MM/DD wise, as I had to make the assumption that all these XXXXd were read on 1 JAN 2026 as it's not specified.

If you recognize your XXXXd or can interpolate, was your last service reset date close to the date in the first column + 5 years +/- a few days (i.e. MM / DD are off a bit)? I left all the columns and values from Glen's table after the '--' for reference.

Last Service Reset -- Error Msg / Modulo 1024 / 10-bit Binary / Days Since Service Due / Service Due Date
2020-12-17 -- 1841 817 1100110001 -207 Jul 27, 2026
2020-12-06 -- 1852 828 1100111100 -196 Jul 16, 2026
2020-12-06 -- 1852 828 1100111100 -196 Jul 16, 2026
2020-11-20 -- 1868 844 1101001100 -180 Jun 30, 2026
2020-11-19 -- 1869 845 1101001101 -179 Jun 29, 2026
2020-10-29 -- 1890 866 1101100010 -158 Jun 08, 2026
2020-10-27 -- 1892 868 1101100100 -156 Jun 06, 2026
2020-10-25 -- 1894 870 1101100110 -154 Jun 04, 2026
2020-10-20 -- 1899 875 1101101011 -149 May 30, 2026
2020-10-16 -- 1903 879 1101101111 -145 May 26, 2026
2020-10-13 -- 1906 882 1101110010 -142 May 23, 2026
2020-10-04 -- 1915 891 1101111011 -133 May 14, 2026
2020-09-22 -- 1927 903 1110000111 -121 May 02, 2026
2020-09-18 -- 1931 907 1110001011 -117 Apr 28, 2026
2020-09-17 -- 1932 908 1110001100 -116 Apr 27, 2026
2020-09-16 -- 1933 909 1110001101 -115 Apr 26, 2026
2020-09-12 -- 1937 913 1110010001 -111 Apr 22, 2026
2020-09-09 -- 1940 916 1110010100 -108 Apr 19, 2026
2020-09-04 -- 1945 921 1110011001 -103 Apr 14, 2026
2020-08-30 -- 1950 926 1110011110 -98 Apr 09, 2026
2020-08-27 -- 1953 929 1110100001 -95 Apr 06, 2026
2020-08-13 -- 1967 943 1110101111 -81 Mar 23, 2026
2020-08-12 -- 1968 944 1110110000 -80 Mar 22, 2026
2020-08-12 -- 1968 944 1110110000 -80 Mar 22, 2026
2020-08-05 -- 1975 951 1110110111 -73 Mar 15, 2026
2020-07-22 -- 1989 965 1111000101 -59 Mar 01, 2026
2020-07-17 -- 1994 970 1111001010 -54 Feb 24, 2026
2020-07-16 -- 1995 971 1111001011 -53 Feb 23, 2026
2020-07-04 -- 2007 983 1111010111 -41 Feb 11, 2026
2020-07-04 -- 2007 983 1111010111 -41 Feb 11, 2026
2020-07-04 -- 2007 983 1111010111 -41 Feb 11, 2026
2020-07-02 -- 2009 985 1111011001 -39 Feb 09, 2026
2020-06-19 -- 2022 998 1111100110 -26 Jan 27, 2026
2020-06-17 -- 2024 1000 1111101000 -24 Jan 25, 2026
2020-06-16 -- 2025 1001 1111101001 -23 Jan 24, 2026
2020-05-28 -- 2044 1020 1111111100 -4 Jan 05, 2026
2020-05-24 -- 2048 0 0000000000 0 Jan 01, 2026
2020-05-21 -- 2051 X XXXXXXXXXX X MMM DD, YYYY
2020-05-15 -- 2057 9 0000001001 9 Dec 23, 2025
2020-05-15 -- 2057 9 0000001001 9 Dec 23, 2025
2020-05-13 -- 2059 11 0000001011 11 Dec 21, 2025
2020-04-28 -- 2074 26 0000011010 26 Dec 06, 2025
2020-04-07 -- 2095 47 0000101111 47 Nov 15, 2025
2020-04-05 -- 2097 49 0000110001 49 Nov 13, 2025
2020-04-05 -- 2097 49 0000110001 49 Nov 13, 2025
2020-03-27 -- 2106 58 0000111010 58 Nov 04, 2025
2020-03-26 -- 2107 59 0000111011 59 Nov 03, 2025
2020-02-25 -- 2137 89 0001011001 89 Oct 04, 2025
2020-02-12 -- 2150 102 0001100110 102 Sep 21, 2025
2020-02-06 -- 2156 108 0001101100 108 Sep 15, 2025
2020-01-03 -- 2190 142 0010001110 142 Aug 12, 2025
2019-11-01 -- 2253 205 0011001101 205 Jun 10, 2025
2019-07-10 -- 2367 319 0100111111 319 Feb 16, 2025
2019-04-10 -- 2458 410 0110011010 410 Nov 17, 2024

/s.
 
I’m guessing you probably haven’t had the experience of writing code and putting it into a production environment.

Writing good code is hard in that you only get to pick two of these: cheap, fast, good. And project pressures almost always seem to force cheap and fast . . . so not good. Even when you pick good, there are many things a programmer won’t be able to know until code is rigorously tested and patched. It’s pretty easy to skip some of the testing and patching with time pressures or have all previous testing nullified by last-minute changes forced by people who don’t know any better.

The software in my mid-1970’s TI-35 was pretty good, but it was also some of the simplest software I’ve ever used. Since then, the complexity of programming has exploded, not like a firecracker - more like on the scale of a supernova. So given the constraints and complexity of today’s environment, software is hard.
I own two software companies. I guess I hire good programmers. Let me know when you’ve ever seen software this bad in a vehicle. Constant adas lights on the dash. This software sucks.
 
Another couple of high level points on this.

Once these major flaws are identified, this doesn’t take much time to fix with a competent team. Even with one good senior programmer. But nothing really seems to happen. Who is working on the software?

Obviously they did little to no testing on the software. I’m not sure who the programming lead was. Do you guys know? Seems probably outsourced somewhere cheap.

Since there are so many adas errors it could also mean safety concerns.

Also the fact that it took like 6 hours to upgrade my software at the dealer when I bought my vehicle is insane. That is something on most vehicles that is over the air.
 
Thank you to the moron software developer at whatever software company that Ineos uses for my new annoying feature after a new year has rolled over /s

service overdue 1899 days

I get it serviced every 5,000km.
View attachment 7917840
Same bug for me, but oddly mine was only 1897 days overdue on NYD when I started it up, now 1890 days overdue... No warning before that (driven on NYE) and only 3K after a reset for service...
 
Mine is sitting on 2362 days overdue, but to be fair I haven't had it cleared since I did the last service back in August, so there were already a few days on it.

This is just another example of how badly developed the Grenadier software is, there are numerous glitches and latent messages that crop-up out of the blue. I now have three service messages, the usual days and milage overdue, but also a 'Service in 65H', which is completely wrong, but another one of those latent bugs that has been left in the software as a result of some of the worst programming I have seen since Uni (a long time ago :) now). Korg said it best ''moron software developer at whatever software company that Ineos uses'', there would also be the software developer/engineer employed by Ineos in that mix, or maybe there wasn't/isn't one, which would be part of the problem !
 
Back
Top Bottom