Hacker News new | comments | show | ask | jobs | submit login
Onedrive is slow on Linux but fast with a “Windows” user-agent (2016) (microsoft.com)
1423 points by wielebny 64 days ago | hide | past | web | 469 comments | favorite

Hi everyone, this is Edgar from the OneDrive team. We know that some users may have experienced difficulty accessing OneDrive for Business on Linux. The issue was resolved as of Tue, March 22nd 3pm PST.

We identified that StaticLoad.aspx, a page that prefetches resources in the background for Office online apps was using the link prefetching browser mechanism only for certain platforms (iOS, Chrome OS, Mac, Windows), but for Linux it was falling back to a less efficient technique that was causing the issue. Rest assured that this was not intentional. It was an oversight.

The prefetching optimization was disabled, and it will be enabled again soon after an update for StaticLoad.aspx has been tested on Linux and released.

We apologize for the inconvenience this may have caused.

Thanks for popping in here to clarify this personally, thanks very much for the imminent Linux-specific fix, and thanks for the clarification that this was an oversight :)

I'm curious about the "less efficient technique" you referred to. Insight into the technical context around the goal being achieved may be very interesting to other Web developers looking to make their JavaScript applications more efficient and responsive.

A lot of people are also likely to be very interested to learn what solution you use to fix this for Linux as well.


As an aside, link prefetching caught my eye - it's an interesting mechanism that works via <link> or <meta> tag, or via HTTP headers: https://developer.mozilla.org/en-US/docs/Web/HTTP/Link_prefe...

i336, hello from Redmond!

With less efficient technique, I refer to using <object>, <script>, <img> tags to prefetch content, which does not have the goodness of link prefetching mentioned in the article your shared. That is what Chrome on Linux was falling back to.

Link Prefetching is the way to go, and that is what Chrome on (Mac/Windows/Chrome OS) is currently using.

The reason why browser detection is needed is because it is not supported everywhere, e.g for instance, according to http://caniuse.com/#feat=link-rel-prefetch Safari does not support it, so StaticLoad.aspx uses the <object>, <script>, <img> technique, but unlike Chrome on Linux, Safari on Mac does not hang.

Again, this was not intentional. The second technique does not hang on Safari on Mac, but it does on Chrome on Linux. We will definitely ensure that more Linux testing is done! Our goal in OneDrive is to build a service that enables as many people as possible to be productive, so if in cases it looks like we are trying to favor our own OS, that is not really our intention.

Thanks! Edgar

Hi! Thanks for the reply! :)

I think I understand now: you added a whitelist that needed to see "Windows" (possibly alongside some other acceptable keywords) in order to serve the link prefetching implementation, and that Chrome on Linux just never got whitelisted. I'm very glad to hear that you'll be doing more Linux testing in future!

With that said, I'm now looking sideways at the Chrom{e,ium} team and wondering why using object/script/img tags is causing such massive lags on Linux - that's how most websites still work! If I may ask, what do you think were the contributing factors to the hangs? I'm guessing large code size might have had something to do with it...?

Thanks for the reiteration that this wasn't intentional, really cool to hear that. I also really like the view you have regarding different platforms :D

Edgar, you might be interested to know there are significant problems with the big javascript files being downloaded on Linux for Office365, particularly for WordOnline.

We've done similar experiments and proven it to be again based on your own user-agent detection, since normally they will take 30-60 seconds to load, causing the UI to essentially lock up and fail, when faking the agent-user to something else will work around it.

Multiple attempts at contacting Microsoft support come back with its not supported.

Its the Web... pretty sure you can build things without breaking them for Linux.

(Not ebang4)

That's interesting; sounds like a very similar issue to this one (with Link Prefetching). That said, Edgar is from OneDrive, whereas you're talking about Office365. My guess is that the departments are "just far apart/different enough," so to speak, even though the issue does sound the same.

I really liked to hear that "We will definitely ensure that more Linux testing is done!"; hopefully this is a collective mindset (and I really do hope that, non-skeptically). Maybe if you're persistent now you might get somewhere - although it could take a while; the L1 techs on the forums or wherever are probably not completely tuned into these recent developments.

You could also try being unorthodox, such as for example politely poking random people on GitHub/microsoft (fish emails out of local repo clones :P) - that might find you someone who can figure out a good next hop in the direction of the right department, eg someone might be able to pass your email on to some developer directly. That's always really cool.

You're describing the same issue. OneDrive is only affected because it preloads Office assets.

Other products (e.g. Teams, Office itself) are also affected for the same reason, and spoofing user agents to just officeapps.live.com works around the issue on all of them.

So for the "New Microsoft" releasing a bug fix for a "bug" affecting customers using Linux for more than 3 months it just required to be popular at Hacker News and Reddit.

Sometimes at a large company feedback from support and those customer forms doesn't make it all the way back to the engineers. The engineers read hacker news. As soon as they saw this it makes sense that they fixed it.

Seems like the pipeline for customer feedback could be improved.

So engineers at "New Microsoft" read Hacker News, but don't use "New Microsoft" products on Linux.

It may sound farfetched to you, but I assure you that some people who read Hacker News regularly don't actually use Linux on a day-to-day basis.

Sure. That was my point: the "New Microsoft" is not using Linux, or don't {care about | want} their customers using "New Microsoft" products on Linux.

Kudos for fixing the issue. I do question whether it was originally tested throughly on Linux in the first place, otherwise it's hard to see how such a major bug could have crept in.

This! As a Linux user I don't really care if someone is neglecting my platform of choice or purposefully sabotaging it, I'll just move on in any case. Not performing testing on Linux is inexcusable in my book in this day and age.

It seems like a bad idea to check for capabilities by parsing user agent string anyway - I though we all figured that out about 20 years ago? JavaScript allows web page to check for capabilities on-the-fly, so there really is no excuse for whitelists.

> Not performing testing on Linux is inexcusable in my book in this day and age.

1. There are probably more IE7 users hitting OneDrive than Linux users of all distros combined. Should the fact that there are some users of a platform obligate MS to support it?

2. If you're running Linux on the desktop, you've made a decision to eschew all the major commercial software/OS vendors (particularly Microsoft and Apple). Why should you then expect Microsoft to bend over backwards to support your idiosyncracy? Why do you care?

I run OpenBSD on my desktop. I can't run Microsoft stuff. Even Outlook Web won't load unless I spoof my user agent. I don't care.

It is actually problem for Microsoft/Apple.

The percentage between $PLATFORM users generally and $PLATFORM users using your product may or may be not correlated. It may happen, that then first percentage will rise but the second will not - you are making it difficult for them, so why bother - and you will miss it.

You might fix the software later, but that's the easy part. The more difficult part is to fix your reputation and users habits. They already have opinion of you and found alternatives that work for them. The Thank you, I go back to Google Apps suite. response is a perfect example of this.

I don't care either, FWIW.I haven't used OneDrive yet and I probably never will. But the reason I will not use it is exactly this - I know I will always be unwanted customer in their eyes. And I don't trust them not to throw me under the bus if they feel like it. I should probably say "...is inexcusable to me in this...". Thought it was obvious.

> It seems like a bad idea to check for capabilities by parsing user agent string anyway

In theory yes. But for some cases it's just not realistic to do feature-detection, and then you move on to the second best option you have.

I'm pretty sure we'll have user-agent related bugs for quite a time to come.

Sure, but that is for some very limited cases. And even then you should generally check for browser and its version, not the OS. Browser makers go to great lengths to make browsers run identically on all supported platforms.

I am curious how @annnd detects whether link prefetching is supported by a browser in js on-the-fly (reliably and in a performant way) http://caniuse.com/#feat=link-rel-prefetch. There are many capabilities you can quickly detect, but for that one I can't think of a performant way. Test your solution with Safari on a Mac, which should return false.

I haven't tried detecting whether link prefetching is supported by a browser yet. Not that I think it should even be detected, because those are hints to the browser. If you need to depend on them there is something else wrong with the way you design your apps.

But if you still insist you need it, I don't think detection should be that difficult. When user comes to the page for the first time you put a hidden link somewhere with prefetch turned on. Then you ask server if the page has been accessed. And because you only make this check once (for instance on login page while the user is typing) it is performant enough.

Is it easier to whitelist? Sure. But we have seen here how reliable whitelisting is.

And if they would have a pure JavaScript solution people who block JavaScript would start complaining instead no? Of course you could have JavaScript as a primary solution and then fall back on the other options.

Anyone can make a mistake, the real test is whether they change their ways to be less error prone. (With proper testing of Linux platforms too)

> I'll just move on in any case.

Unfortunately not all of us have that option. I'm currently trying to figure out an issue with TFS which means I can't do anything with a PR once it's been raised if I use a browser in Linux. After seeing this thread I think I'll be switching the user agent and see if that fixes it.

> Not performing testing on Linux is inexcusable in my book in this day and age.

No, wasting time for two open minded users instead of working for 99,999% users is inexcusable.

I'm reluctant to belabor the point, but I must say that, at first blush, this doesn't seem to add up.

Content prefetching? Sounds good (if you are prefetching the right content of course).

Checking the user-agent and doing prefetching only on that basis? I can think of no reason to do such a thing.

If this was not intentional, can you clarify the reason that your team engineered such a strange and unusual solution?

It's depressing that your question is downvoted to grey. I consider it a sign that people think it's better to be a coincidence theorist rather than a conspiracy theorist.

> The issue was resolved as of Tue, March 22nd 3pm PST.

Just tried (Thu Mar 23 10:25:18 CET 2017) -- the bug is still here.

Read his post again

Fixed in test, not in production yet.

Going forward, do you plan to test your code on Linux as a primary platform?

I'm 100% sure it was not intentional!

Why do you need to look at the OS in the UA string in order to do this? Seems like you are doing it wrong (tm) ?

Why was the issue ignored for several months, and then fixed in one day when it hit the front page of HN?

I have to admit, the whole exchange is pretty funny:

> Hello, Onedrive for Business open is very slow on Linux (Chrome/Firefox) but with very fast with a "Windows" user-agent.

> Hi DL, As Office 365 for Business services(e.g. SharePoint Online, including OneDrive for Business, Exchange Online) are not supported on Linux as shown below, for the best experience, we recommend the operating system listed in the article.

> Thank you, I go back to Google Apps suite.

> 12 people found this helpful

It may be funny, but at the same time it's great to see this kind of feedback directly from the customers to the company. If someone listens up there, sooner or later they'll realize there is more money in the subscription business than in one-time OS purchases, and they will put the money where the mouth is.

I'm guessing (especially when you consider that OS X is in there) that it has more to do with the support burden and small number of people using Linux as a desktop OS than trying to get people to buy Windows.

So they make it run buggy in order to reduce the support burden??? Surely that makes for more support calls.

I'd have much more respect for them if they just came clean and said "we hate linux users, if you want to use that OS don't use our products because we try our best to make them not work on linux". Look at what they did with Skype for example. At least then we'd know not to try their stuff.

Almost always, nobody has any intention to "make it run buggy." It's about making it run well on platforms you care about (and officially support), and ignoring the others. Complicated software is usually fragile enough that it will have similar results.

If a user agent change makes the software slower for a platform then that's not exactly an accident so somebody must have had the intention to make it run buggy.

This has nothing to do with 'making it run well on platforms you care about' but it is 'making it run bad on platforms you don't care about'.

It takes more code for the software to act in this way (this is what proves this is intentional and not accidental), and more support to boot.

It's been mentioned a bunch in this thread already, but they're doing feature support detection by user-agent string. It's not malicious, it's sloppy.

Here's a quote from the /r/linux thread [1], courtesy of /u/angellus:

> This is certainly a bug. It is not a targeted attacked against Linux users. Report it to Microsoft. Microsoft is just doing really shitty feature detection using User Agent strings instead of, well actual feature detection. I was able to reproduce the same result by setting my User Agent to Firefox 52 on Windows 98. If I set it to a "more realistic" user agent like IE 7 on Windows XP, it would actually redirect me to a busted page to upgrade my browser instead of Word Online. It appears if Microsoft cannot figure out your User Agent (including your OS as part of it), it gives you a busted experience.

1 https://www.reddit.com/r/linux/comments/60nj67/office_365_on...

That commenter appears not to have heard of browser detection or UA sniffing, it has nothing to do with feature detection, they're a completely different method (and paradigm).

Nor should browser detection cause Firefox to follow a different switch in the code when on a different OS, not since about version 2 when I think there were bugs making that useful.

Really browser detection was something needed to handle MSIE way back in the day, or possibly other browsers before web fonts.

But this ain't browser detection, definitely not feature detection, it's OS detection - the system responds differently when only the OS in the UA string is altered.

What he's saying is that they're using UA sniffing in place of feature detection (which is frowned upon these days but was common at one point).

> If a user agent change makes the software slower for a platform then that's not exactly an accident so somebody must have had the intention to make it run buggy

That's not necessarily true. For example they might be doing polyfills that are slower than the native windows implementation.

I feel like I'm seeing a lot of this kind of thinking everywhere. The canonical example for me is lately is "he voted for Trump/Hillary therefore he must support groping/war/whatever".

I wish people would ease up on these kinds of deduction-based motivation attribution. It's my view that there enough self-professed unethical motivations for us to work against, without speculating. The speculation just muddies the waters.

Microsoft has a history.


And that is merely one of the most documented cases.

From former employees, I know that the culture at that time and into the late 90's was that Microsoft employees were a better class of human being than non-employees. Knowing that, it's not surprising to see the amount of Us vs Them behavior that showed up as anything from active antagonism to malicious neglect.

The kids don't remember that time frame, and wonder why the old farts malign Microsoft. It's because they went out of their way to make malice look like incompetence. That sort of malignancy deserves not to be forgotten.

It's as if your kids only know Uncle Phil as a Born-Again Christian but you still remember him as a raging alcoholic and how Aunt Sue always had a black eye, or as the guy who molested you when you were a kid. Are you just supposed to forget that ever happened? You accept his apology (except MICROSOFT NEVER EVEN APOLOGIZED), enjoy him while you can but you still have to be on guard in case he falls off the wagon.

You are being very naive at best. There is at least a couple of problems with current Microsoft:

1) Windows is still closed source, their OpenDocument support is broken, and Secure Boot gives them an amount of power incomparable to anyone else in the industry: https://nudgedelastic.band/2016/01/i-am-still-not-buying-the...

2) DirectX 12 is Windows Store exclusive and it will never be possible to use DX12 apps on e.g. Wine: https://www.theguardian.com/technology/2016/mar/04/microsoft...

3) Patents: http://www.infoworld.com/article/3042699/open-source-tools/m... http://www.infoworld.com/article/2841412/open-source-softwar... https://news.ycombinator.com/item?id=13890580

Of course, all of these things are legal.

You are talking about something Microsoft did in the early 1990s. It is very likely that most or even all of the people involved don't work for Microsoft any more. No company is ever going to be perfect, but I honestly believe that today's Microsoft is a much better corporate citizen than 1990s Microsoft was. (And, with the AARD code, while they shipped it turned on in the beta, it was disabled in the final release – which suggests to me that someone in charge at Microsoft had second thoughts about this even back then.)

If 1990s Microsoft did something seemingly anti-competitive, it probably was intentionally anti-competitive. If 2010s Microsoft does something seemingly anti-competitive, while it still might be by intention, I'm more inclined to give them the benefit of the doubt and presume it is the unintentional side effect of an innocent (even if misguided) decision.

> If 1990s Microsoft did something seemingly anti-competitive, it probably was intentionally anti-competitive.


> If 2010s Microsoft does something seemingly anti-competitive, while it still might be by intention, I'm more inclined to give them the benefit of the doubt and presume it is the unintentional side effect of an innocent (even if misguided) decision.

That's fine with me. But the degree to which MS has abused its monopoly position in the past, the degree to which they have been found guilty of bribery (in very recent times) in order to push MS products where Linux would have been a viable (and more sensible) alternative (for instance: http://www.intellinews.com/former-romanian-minister-admits-t... , there are plenty of other examples), the Windows 10 privacy violations, the crippling of Skype on Linux and so on make me believe that there are still at least some parts of MS that have not changed all that much.

Fully agree. Replied in a different place, same arguments apply here: https://news.ycombinator.com/item?id=13955241

It was something that Microsoft did in the early 1990's. And they did nearly identical things in the late 1990's. And they did more of them in the early 2000's.

Their fall from the heights since then has allowed me to ignore whatever malfeasance they committed in the late 2000's or early 2010's, but that doesn't mean that it didn't happen.

And for what it is worth, what they did to companies I worked for in the late 90's and early 2000's consisted of lying, cheating and stealing. It consisted of blatantly dishonest and illegal behavior. And it was completely institutionalized so that the default behavior was dishonest and malicious.

You can be wonderfully forgiving and credulous, but I personally find it very hard to do so.

Steve Ballmer was in charge of Microsoft a little over three years ago. Do you think he's the only executive left over from the 90's?

It takes a long time for a company to recover from a toxic management team even after they are gone. Some never do.

You are within your rights to give the benefit of the doubt. Microsoft is also within their rights to get in front of this and show that "Microsoft Loves Linux" on the client side as well as the server side by addressing the issue instead of saying "well, just use Windows and it will work".

U should modify your language to sound like less of an apologist. Apologists are less effective when they are easily spotted as such. ;-)

I'm guessing you don't really understand what he's saying. He's saying that by pretending to be Windows instead of Linux the webapplication runs better. There's nothing native about it.

The same exact website/piece of software runs better by saying "Hi I'm on windows". This obviously means foul play.

> This obviously means foul play.

No, it really doesn't. It could just as likely mean they load a bunch of slow polyfills and workarounds when the browser is not part of a whitelist (assuming it won't have support for various APIs that it actually does support).

I struggle to consider that Microsoft is really that inept as to only be able to design it that well. I mean, do they do any testing at all? Across the browsers and platforms accessing their sites?

Seriously, white-listing??

I don't buy it.

> I struggle to consider that Microsoft is really that inept as to only be able to design it that well

Have you ever used Microsoft software?

It seems most likely that they do testing on exactly the browsers and operating systems they say they support and no other platforms and do not want to expand the list because they'd have to provision more environments and do more testing.

I'd buy that if it sent out the exact same code that it would without that UA. But it doesn't.

What don't you buy? They test with a certain set of supported platforms. If a client isn't one of those (whitelisted) platforms, then they may send out a bunch of inefficient polyfills so they know XYZ functionality exists, even if it's slow.

Except that it works just fine if those 'unsupported' platforms are treated in the exact same way as the supported ones. To make it seem as if a whole pile of work was done in order to make unsupported platforms work less well but this is a good thing is something that I find very hard to reconcile. And if this were a company that did not have a history of exactly such tricks it might be more believable, MS - with me at least - does definitely not have the benefit of the doubt in cases like these.

No, a whole bunch of work was (hypothetically) _not_ done to verify if they were supported or not. I'm not suggesting that it's a good thing, I'm suggesting that laziness, sloppiness, or a simple oversight are just as plausible as malice.

It is _less_ effort to say "We support these specific platforms, and rather than doing actual feature detection, we'll just load a bunch of polyfills to make it work on anything else".

How thoroughly do you figure that guy posting the question tested it compared to whatever QA process MS does for supported platforms?

Good enough to detect a problem.


No it doesn't. It is just shoddy detection. It may rely on some windows native APIs that may or may not exist on all linux variants. The fact that it worked by changing the user agents in some case doesn't mean it would be wise for them to deploy it for everyone. The proper fix would obviously be to actual detection and not rely on the user agent string.

You're guessing. Please look at what people say who investigated this: https://www.reddit.com/r/linux/comments/60nj67/office_365_on...

No. I think he understands exactly what the article means, and is correctly stating that it is not necessarily foul play at all.

If you have different stuff available, you might choose to only cache/microoptimise the pages served to 98% of your userbase, which would lead to this type of effect with no malicious intent.

>Almost always, nobody has any intention to "make it run buggy."

Well, Microsoft has a long history of "making things buggy" everywhere else to create lock-ins. This instance may not be strictly related, but people's attitude has been shaped by years of anti-competitive stuff that MS has pulled.

They do have a reputation, but it's decades old, and things have changed quite a bit. I don't think we should base our conclusions on stale data.

Decades old. The GWX consent brouhaha is decades old? Edge (not IE) becoming the default browser all by itself is decades old? Riiiiiiiight. Decades of consistent data, methinks.

I really don't get why they can't put the browser they like as the defaultone into their OS. Not that I'm an MS apologetic (I don't really use anything MS since time immemorial) but it seems silly to me, frankly.

For a while I was changing my browser back and forth between firefox versions. Every single time windows 10 would detect that change and 'protect' me from it by opening the default programs control panel and setting the default browser to Edge.

It makes sense if they want the default browser to require user confirmation to change. But setting it to Edge in the meantime? That's just being rude and anti-customer.

Well that I didn't know. What I meant was shipping with a given browser which I see as their right. What you describe is naughty and not good at all.

I think it has a habit of changing itself to default even after the user sets something else as the default. Minor annoyance though compared to the overall pain of using a windows machine.

"Minor" depends on whom you ask: each time this happens, MS generates n angry support tickets...for me, not for themselves, of course: "the computer is broken again and I have lost all bookmarks and sign-in data, why did you break it again?!?" (The good news is, of course, that nothing is "lost" except for the default browser flag: resetting to FF fixes it...until next time)

As far as I am concerned, they can. But they are not bloody supposed to change it again, after I have changed it to something of my choosing. I am sick and tired of "yeah, so you have set your default browser to FF, but we know better than you what you want; so we have reset it again on yet another Patch Tuesday. Admit it, YOU WANT THE E!" (Consent, what consent?)

Does this only happen with certain configurations or something? I've been using Windows 10 since it came out and can't really remember this happening to me

As far as I'm aware this has to do with the fact that major updates are being delivered in a manner that's basically equivalent to a full reinstall, causing a lot of settings to get reset to defaults. This update method is particularly common for the insiders, but still happens from time to time on the general builds: anniversary update, creator's update and such.

Makes sense.

Makes sense for people who want nightlies and constant flux. Makes absolutely zero sense for production machines.

No idea; I am not MS's QA, and only have a handful of configs. Plus it doesn't even happen consistently on the configs that I do have.

Simple solution, do not do preferential treatment based on one's OS.

While it's a solution, it's not a simple one. Developers don't have this luxury. Choosing an OS to support means supporting all the APIs and possible ecosystem that comes with it.

But they're not supporting an OS, but a browser here.

If it works in Firefox on Windows, there's no technical reason for it not to work the same way in Firefox on Linux.

Yeah there's no reason at all that anything would work differently in one browser or another, signed, a guy who has never done Web development.

Again: operating system, not browser.

There are differences in supported features on different OS's with the same browser. They don't ship identical bits on each platform. The differences are pretty minor OS integration things usually, but there are differences.

As an end user, it is sometimes hard to distinguish between 'made to run buggy' and 'put no effort in to make it not buggy'.

They are most likely doing the 'put no effort in to make it not buggy' action, and it just appears that they are doing it on purpose.

But the only time it is buggy if you SAY it's Linux. If you say it's Windows, it works fine. That's not having the software passively become buggy, that's CHANGING the way the software works if and only if the OS is Linux, but working correctly if it's told (but isn't actually) Windows.

I don't think this is a conspiracy, but I don't think the characterization that users think that because OneDrive works on Windows better than Linux, buggy by inaction is assumed to be buggy by action: this situation is far more damning than that.

It seems entirely plausible that there are optimizations that are only applied on certain platforms or something with the idea that any platform should fall back to the slower but better-supported behavior.

Should be testable, for example what optimisations are in the FF48 code sent to Windows that breaks FF48 on Linux?

MS will I'm sure provide those details to demonstrate their lack of malice. /s

If you're that hot and bothered about it try fetching a page with both UAs.

Except that we're talking - as far as is visible to me at the moment - about server side behavior, something that need not change at all depending on the user's client.

No we're not. The bug report says 100% CPU. It's very clearly doing something client-side.

That is speculative. Yes, the client side is the one where the problem shows up but it's when the user agent is changed that the problem appears and the client side does not do anything with that user agent, it gets sent to the server. So something in the response from the server or some interaction with the server than causes the 100% CPU load.

That is exactly what the people you are responding to are saying.

The client makes a request to the server, and the server either returns the new optimized client code if the user agent is one that it knows supports the new code, or it sends back the older, slower, client code for an unknown user agent.

They are probably returning the older code because they KNOW it works, even if slower, while they aren't sure if the new code works or not on other machines. The author says it works fine on linux when getting the windows response, but we can't be sure he has tested every use case; maybe it fails under particular conditions, which is why they are still returning the old code. Or, perhaps, they just haven't tested it so they go with the safe thing, which is to return the older code.

So, you're telling me Microsoft is unable to tell the difference between code that doesn't work (the 'old' code) and code that does work (the 'new' code), and that to be safe they are returning the non-working code as a fix for potential problems that do not appear to exist?

If there is anything that would be more damaging to Microsoft than calling them malicious it is probably calling them incompetent, that's their core expertise you are challenging there.

Of course MS is unable to tell the difference between code that works and code that doesn't... on an unsupported platform.

Incompetent? "MS: We support Platform X, Y, Z." ... "Mob: MS must be malicious or incompetent because they aren't testing and pushing new code to Platform 9 3/4"

Unsupported. Means exactly that.

Well, from where I'm sitting a server should just do what it does for everybody without shipping different code to 'unsupported platforms' in order to make those platforms work worse. It either serves up the same to everybody or it contains code to support some platforms and blocks others.

A 'best effort but unsupported' isn't an option, it reminds me of the SMB days.

Either you support a platform outright, you send out the same code to everybody or you disable the platform completely. Other options are sufficiently gray to count as ways to coerce people into making a platform switch, and the MS rep seems to be pushing in exactly that direction.

" For the best experience, we recommend the operating system listed in this article. "


Well not all platforms are created equal... it's why you have fall-backs to "Stable but not shiny" for platforms you don't support... or platforms you don't know supports New Shiney Thing (tm).

If you know browser X, Y and Z support HTML5 video - because that's your actively supported platforms... but someone says I'm browser 6... do you push HTML5 video? Or do you fall back to stuff you know works but is years old tech?

If you don't know what Browser 6 is... then you have 2 options: Safe options or Feature Detection.

Safe option: I don't know if you can read HTML5... so I'm going to serve you HTML like it's 1999.

Feature Detection: I'm going to go out of my way to see if you can support random new technologies that I'm using. Can use HTML5? You can? Oh... Here's your scripts... or... You can't? Here's HTML like it's 1999.

The first option is a lot easier. "Unknown? You get 'Safe' tech that's not shiny, optimized or best-of-breed. Known? You get stuff we said we support on platforms we say we support".

Second option requires testing and blending the technology stack based on detected features. Possible - because plenty of people do it - but it's definitely not as easy to support dozens of techs in many many more possible combinations.

It looks like MS took Door #1.

Are you saying you would ship HTML5 code to platforms you don't know support HTML5? Because... that sounds like a recipe to send "broken" code to users because "everything should work the same everywhere" which is something that happens... never.

> Are you saying you would ship HTML5 code to platforms you don't know support HTML5?

No, I would stick to open standards supported by the vast majority of users until the next wave was supported by the vast majority of users and so on. I would never detect a user agent and make crippling decisions based on the response.

And if you do decide to resort to such trickery then you'd better make sure that you extract the maximum out of each platform that presents itself otherwise you open yourself up to claims of favoritism.

As for the HTML5 video, given that I've pioneered that stuff and worked very hard to keep the video-on-the-web scene plug-in free and working with all browsers it was with serious reluctance that I eventually switched to H.264 encoded video with flash as the player because to me that was the wrong way to go about it but the market literally demanded it.

I suspect that if we had not had flash a proper <video> tag would have been implemented ages ago.

"stick to open standards supported by the vast majority of users" is exactly what you get when the user agent isn't known. It just turns out in this case that it's unoptimized and performs pretty badly.

Please. If they displayed a page saying "sorry, Linux isn't supported; try using a supported platform instead" you'd be over here taking them to task for that.

Actually, I would not. MS is under no obligation to support anything other than their own platforms. But if it works it should work well rather than be effectively cripple-ware.

Well I completely disagree that not being able to use the software at all is better than a degraded experience and I can remember at one point Linux users railing against exactly what you're now advocating.

Microsoft doesn't need to spend money making the Linux desktop-experience suck, it has done so on its own for well over a decade.

Skype was messed up for ages, they actually have a really cleaned up Linux client, it's based around Electron so it actually works a lot better than the older one. Skype is an example that they do care about Linux too.

The new Skype client is crap compared to the old one. 99% of all settings are gone. Video calls are gone.

I've said this before, but the last time Skype worked reliably for me was on the Nokia n800, circa 2008. I had a subscription for several years 2012-2015ish and didn't have an acceptable quality call once.

Yikes, Skype is electron based? That explains why it hogs so much memory.

Software is naturally buggy. It only becomes non-buggy through pro-active effort.

If you're writing apps that work in i.e. And not chrome you're not going for a big user base. I.e. Is 2% of our traffic and 50% of my time.

Treating Linux as a "best efforts" might be a reasonable middle ground. No expensive support commitment, but then they needn't hobble it in scenarios like this where the experience/support burden is not related to the OS (since it's in the browser)

Yeah but if nothing else you've got to have the environment for someone to test it with, right?

> If someone listens up there, sooner or later they'll realize there is more money in the subscription business than in one-time OS purchases, and they will put the money where the mouth is.

I think MS is nearly a decade ahead of you there.

More money - and mindshare (=future money).

Chromebooks run linux, and if this issue affects those, then O365 is looking terrible against Gsuite for huge numbers of school students. In five years, those students will be starting their working lives demanding Gsuite.

My manager and I rejected OneDrive when we were comparing different services, because it was slow and unresponsive. I didn't think to try it on Windows, so we chose a competitor.

Linux users are a small minority, but I suspect they have well above average influence in what IT services are purchased.

>Linux users are a small minority, but I suspect they have well above average influence in what IT services are purchased.

According to the stack exchange official stats that were on the frontpage yesterday, over 30% of developers run Linux Desktop. That's not "a small minority" by any means.

That's my point.

It is a small minority of users of OneDrive, but a bigger fraction of people like systems administrators, IT department managers and so on, who decide what to buy.

"Linux users are a small minority, but I suspect they have well above average influence in what IT services are purchased."

Not really. If you're deciding on a vendor for a bunch of Windows users, you would test it on windows.

They were deciding on a vendor for a bunch of browser users, not windows users.

Usually the best test for a vendor claim, that their solution is HTML/standards based and works "everywhere" is to test it on some minority platform.

When you find bugs, you can always use them in negotiation.

I found that interesting too. I'm not familiar with office 365, but isn't it web based? So why does it matter what browser or OS you use?

Well, it used to be that MS used ActiveX extensively, as with the original Outlook Web Access, to achieve things that weren't possible in the browser. It's entirely possible they try to use advanced features only available in IE depending on the User-Agent header.

Keep in mind, XMLHttpRequest was introduced by MS in IE, and then was adopted by other browsers. It's likely that some Google products use Chrome specific extensions if they detect Chrome. If you can provide a better experience, it's often worth doing so.

Unfortunately there may occasionally be problems where falling back to standard features may be buggy, or development has continued assuming the existence of proprietary features that has led to designs where the fallback to standard features isn't just a little slower, but massively slower, because it might be a less checked test case.

In other words, I think this is far more likely to be an oversight because of a poor testing regime than a purposeful action.

Just MS up to its old (classic) tricks.

Doesn't Hangouts only work properly on Chrome?

It works fine in every browser, but you might need to download a small plugin if you're not on Chrome due to WebRTC being a standard but not a standard.

Regardless of your browser, it'll heat your system up so you can fry an egg or broil a steak.

Not in FireFox anymore. They sent alerts for a long time saying FireFox was losing support for hangouts, and now it doesn't work at all.

True. But temporary: https://gsuiteupdates.googleblog.com/2017/02/google-hangouts....

Ironically that's being caused by WebRTC not having compatible enough implementations across all major browsers (and as an aside being disproportionally difficult to debug). Otherwise they would've just dropped the plugin and be done with it much earlier. Though I'm surprised they didn't act earlier.

The biggest WebRTC interop problem is due to Chrome declining to implement the "Unified Plan" for multiple streams ... a plan they agreed to implement when the spec was worked out. https://bugs.chromium.org/p/chromium/issues/detail?id=465349

Yeah the Hangouts website is my main gripe with it. Great service for talking with friends and family. Absolutely horrible performance on their site.

Something to do with WebGL being used during background transitions would drop the performance of my graphics card into the dirt. Games running at the same time would incur a frame drop of 90% for the 5 seconds Hangouts is merely changing a PICTURE..

Try https://appear.in . I have no affiliation, I just find the idea of not logging in awesome.

There is a plugin for IE and safari. Some versions of Firefox work. The important issue is that chrome and Firefox are browsers that work on the big three platforms.

It is funny but in our experience around the company some people found out it works better on Safari than in Chrome (like, in Chrome oftentimes mic cannot be heard when one enters a hangout).

oh come on, don't you know google doesn't get held to the same standards \s

If the one creating a product also creates a OS, making that product run faster on your OS compared to others makes your OS look better I guess.

Kind of a corollary to "It ain't done 'til Lotus won't run."

highly doubt that microsoft crafted this product to have lowe performance on purpose.

My office 365 Home install is not cloud based in any way as far as I can tell. All the 'traditional' office programs such as Excel and Word are installed locally.

There may be some cloud integration to OneDrive or something similar, but I haven't used that. It is nothing like Google Docs.

That's probably Office 2016. Office 365 is definitely a cloud based service which includes licenses for the desktop Office software.

It keeps growing

> 36 people found this helpful


> Solved my problem (12)

I went to vote for this, just for the fun of it, but got asked to login. Then it asked me to setup my username, and then complained that my 3 usual variants were already taken. I guess I have another account that's already sitting on that username. But who knows? Microsoft's multi-user login support is a disaster.

One of my accounts is corporate, and my browsers -- ALL of them on ALL OS's -- are constantly confused. Sometimes when I need to switch, it looks like my browser flips through about 4 or 5 pages, and then makes me manually refresh to get a prompt. How can this be so bad, at this point? Google had multi-user support sorted years ago, including business account logins. I guess it's a problem due to a difference between AD-backed corporate accounts and (I assume) non-AD accounts?

I've lost track of the number of times I've been stuck in a login/redirect loop with Google's multiple account handling when I want to use one of their services from one of my secondary accounts. Only way out of it is to clear cookies and log in again with the account I want, then add the other 4-5 accounts until the problem happens again.

Because linux users would NEVER, EVER brigade a poll, right?

Absolutely hilarious

>I go back to Google Apps suite.

That was funny but sadly many of us are stuck in MS shops.

I even got folks to vote on community features/issues so basic with other cloud providers.

This is a more realistic timeline, note the 2015 - 2017 duration: https://onedrive.uservoice.com/forums/262982-onedrive/sugges...

I think the lesson is get the issue up in HN for a company to start noticing.

A university I know just switched from Google to Microsoft exchange and sharepoint.

Many angry employees (many on Linux) are now using their private Gmail accounts since the Microsoft web interfaces are very slow and buggy.

Don't worry, if you leave MS you can still experience the same sort of thing from other providers. e.g. https://www.dropboxforum.com/t5/Dropbox/Stop-auto-inheriting...

His thank you seems to be in reply to a deleted message by Felix Tao from Microsoft where he closed the issue prematurely. It makes more sense then.

No, the original message from Felix Tao was just a response saying OneDrive is not supported on Linux.

After the post blew up on Hacker News, real Microsoft PR swept in and deleted that post, replacing that non-answer with the current one that says they've fixed it.

Here's an archived version: https://archive.is/zlXWy

"Don't assume bad intentions over neglect and misunderstanding." - Hanlon's razor

I worked as a Microsoft employee on the xbox.com website from 2007-2010. We didn't officially support any browsers on Linux because it represented <1% of our user base. It just didn't make business sense. We tested it on occasion anyway because we are decent people and, being part of the tech community, we were fans of Linux.

We supplied a list of officially supported browsers to the customer support team. Any bugs on non-supported browsers would never get reported back to our team, so we'd never hear about them. The support team did their job.

This is how pretty much every company in the history of ever works.

Having a list of supported browsers is fine. All modern browsers are supposed to implement the same web standards, but they all have a different set of supported features and subtle rendering and layout bugs. Sniffing the User-Agent string to detect the browser is a small evil, but it's sometimes necessary.

Having a list of supported operating-systems is totally different. For a web app, this is almost never okay. The popular cross-platform browsers (Chrom{e,ium} and Firefox) are excellent examples of well designed cross-platform software. They both abstract the underlying platform and implement the layout engine in platform-independent code. It's very rare to find a rendering bug in these browsers that only affects a single platform. So, what I don't understand is why OneDrive is sending different code to Firefox on Linux and Firefox on Windows, and why are the support team being instructed to dismiss bug reports from Linux users when they are using a browser that would be supported on Windows? It's hard not to attribute this to malice. Even perpetuating the idea that it's not possible to write truly cross-platform software or that web apps have compatibility with specific operating systems works in Microsoft's favour, since they sell the most popular desktop operating system.

Well, Microsoft often doesn't get the benefit of the doubt because of their history of incredibly aggressive, borderline unethical behavior. Being a convicted monopolist tends to color people's attitudes to a company. Let alone something ridiculous like trying to destroy the open source movement in its nascent stages, stealing Google's search results, or running the completely insane Scroogled campaign. And all the other things Microsoft has done to erode good will.

Ironically, people seem to forgive Apple a lot of similar practices.

Microsoft was not just 'borderline unethical', it got charged times and times for severe illegal practices. Apple is far from there (yet ?)

The stuff Apple does on iOS is worse than the worst of the Windows lockin. The difference is a DOJ that is not interested in monopoly cases.

The real difference is that now we have a choice. With Windows there was monopoly and it was practically impossible to use another platform if you wanted to exchange documents with others and similar (which is basic functionality for computer).

IMHO what Apple is doing only harms themselves. While they had Steve Jobs they could be successful in spite of their practices, but with no breakthroughs for some years now such "small" differences will become important. Google is beating them hands down in all departments of mobile platform space.

I actually wish Apple stayed strong because we need competition, but in the long run I don't see them as a dominant force in mobile OS anymore. They will likely become what they were with Macs before Steve Jobs came back - a niche player.

They still make the biggest chunk of profit in the mobile space by some margin. Google might beat them in all technical departments, but Apple is making tons of cash from iOS.

Sure, they still make a ton of money, but I am arguing that their power is declining due to stagnation in innovations. Once the cycle reverses the profits will follow too. All IMHO, of course.

Is Apple not the world's most valuable corporation? I think we can still call them pretty strong.

e: per WP:

> Apple is the world's largest information technology company by revenue, the world's largest technology company by total assets

Apple is legacy hardware vendor, I don't see anything wrong making software for you own hardware to complete ecosystem. MS, on the other hand, tried to capture, lock in users' generic hardware and kill competitors, which is totally different case imho.

Why? That is worse.

Can you provide an example, with a citation? :)

You used to (maybe still) couldn't watch Apple Keynote presentations on any other browser than Safari.

Microsoft Edge is supported now.

Safari on Windows was the obvious one. Lord what a mess.

What was insane or wrongful about the Scroogled campaign? Besides the dorky name.

overturned convicted monopolists

I hear this phrase "It didn't make business sense" all the time. It's a persistent misunderstanding of business and customer relationships.

You support Linux users (or Mac or WinXP or those behind a firewall or MSI installer needing etc etc) because you want to dominate your competitors, you want your product to be the one everyone wants, and the one with the least bugs.

If you're going to say 'screw you' to some customers, that needs to be based on an actual assessment of costs, impact on users, how it can be mitigated, and what else that money would be spent on. A CTO level decision, not the support desk. And not supporting people running a standard web browser is just inept.

At a company the size of MS that is not a CTO level decision by any stretch unless it is a broad-based 'all-in' or 'all-out' decision to steer the company at a high level. It's much lower than that and it almost certainly is based on an assessment of competing priorities.

No, even at Microsoft. It won't be at the level of "the support for this app will work for firefox on linux" but it will be setting policy like "By default all Microsoft websites will support browsers x/y/z on platforms p/q/r/s, unless exempted by the relevant VP with supporting business case" etc.

Sure, but Microsoft also spent a decade developing a different dialect of JavaScript to force vendor lock-in. You can't discredit malice either.

That just isn't true (and I worked on Chakra while at Microsoft).

I think you're thinking of J++ (Microsoft's version of Java, not JavaScript). Now JScript (Microsoft's version of ECMAScript) does have some minor differences in the dialect, but that was only because the ECMA standard was at a standstill back then. Mozilla had no problems extending their implementation to match either.

Why does ms have it's own version of all these languages?

They're just extensions in the same way that GCC has its own extensions for C and C++.

J++ was created to counter shortcomings in the design of early Java language versions that Sun was not keen to re-integrate back into the Java language. That itself isn't bad (as other JVM-compatible languages exist, like Scala and Groovy) except that J++ then needed Microsoft's own Java VM with its own platform-specific runtime extensions - and that's what the Sun lawsuit was about. I agree it was badly handled by Microsoft, and in the end Microsoft just ditched Java and reinvented J++ as C# and the .NET Framework - which is where we are today.

As for JScript: before JavaScript was standardised there were extensions being added by everyone (Netscape had their own, as did Microsoft). I think Microsoft extended JScript in a very conservative way: the main change is the addition of the `new ActiveXObject` wrapper for COM objects which made AJAX possible, and also made JScript useful for automating Windows (and server-side JavaScript with ASP/JScript predates Node.js by 13 years!) - to my knowledge JScript itself didn't add any syntactical changes and provided you didn't use ActiveXObject your code would run without issue in other JavaScript engines. Note that this isn't the same thing as DOM extensions in Internet Explorer, of which there were many.

I think it's worth pointing out that when IE6 was released in 2001 it was by-far, the most W3C-compliant web-browser in existence: for CSS2.1, Netscape's then compliance level was abyssal, and even beating out Opera at the time too.

I think that's another case of assuming bad intentions. Once Microsoft had a slightly differently behaving version of JavaScript that was in use by hundreds of millions of people, including many enterprise environments with internally developed and bought solutions that required Internet Explorer and it's version of JS and ActiveX to function who more often than not were also large Microsoft customers, the idea of breaking all the existing functionality just to be compliant with a standard becomes a non-starter. Were there people in the company that liked this situation? Probably. That doesn't mean it had to come about through malice. It's easy to see how a similar situation with Chrome or Safari could occur if they had greater than 90% of market share.

The only reason we are where we are today is because there's much less of a single dominant player in the browser space, so using standards are incentivized.

P.S. Yes, MS got their market share through shipping the browser with the OS. While it may have led to a monopoly in the browser space (or close to a monopoly, depending on how you want to look at it), I think it's hard to say any one of us wouldn't have made the same decision to bundle them were we in the position of selling the OS and also putting out a browser.

For one, every Linux distribution comes with either Firefox or Chromium preinstalled. Is that monopolistic behaviour? Should EU require Linux developer to provide "Choose your web browser" wizard popping up on every new Linux install, similar way it is on Windows?

Microsoft's​ behavior was illegal not because of bundling alone, but because of bundling a product (IE) in a different market with a product which was a monopoly (Windows) in what was held to be (based on additional Al evidence beyond mere bundling) an attempt to leverage a monopoly in one market to monopolize a different market.

So, no, it's not like any Linux distribution bundling a third-party browser like Firefox or Chromium, since none of those distributions have a monopoly to leverage to start with.

Honest question: if Microsoft didn't bundle IE and the user hadn't received a copy of those ubiquitous AOL CD-ROMs which came in the mail/magazines (and sometimes carried the Netscape Navigator installer), how is the user expected to consume content on the web without a web browser?

Surely, you'll at least need a decent web browser to get online to download a different browser of your choice, no?

> if Microsoft didn't bundle IE and the user hadn't received a copy of those ubiquitous AOL CD-ROMs which came in the mail/magazines (and sometimes carried the Netscape Navigator installer), how is the user expected to consume content on the web without a web browser?

Go to store, by a CD with browser, install. The age when boxed software was a major thing extended past the point when IE started bundling IE.

Of course, with a TCP/IP stack you can get software from the internet a lot of ways without a web browser, too. FTP was a thing, after all.

As a user who has just bought their first computer, would you a) like to go to the shop and spend money to buy more software b) try to figure out this thing called FTP, maybe going to the library to read up on it even though you have never heard of it so don't know what you are looking for c) just use this thing called "Internet Explorer" that sounds like what you want to do, is free and already installed on the computer you just turned on for the first time?

Before, and for several years after, Microsoft started bundling IE, many, perhaps most, ISPs (dialup and what passed for "broadband" at the time) typically delivered software CDs that you were expected to install with their own software (often including their preferred web browser, preconfigured with their preferred start page and other settings.)

If you just bought your first computer at that time, you weren't likely to have internet service to connect it to until you bought that separately, and when you did, you would have software, too.

Keep in mind, many people with a computer might not have the internet at all during this period. Purchasing internet service usually came with software to use it.

You're talking about an era when Gopher was still the dominant protocol on the internet.

Every ISP I used in the 90's sent a floppy or CD-ROM with a setup guide, web browser and some other shareware internet tools (FTP clients, Stuffit Expander on the Mac, etc)

There was a time when people bought software in boxes.

When I was a kid (before the publicly-used version of the Internet that we know and love today) and wanted to download software, I'd log into a BBS for my download.

Thanks for adding your perspective to the discussion though I'd argue that your experience might not have been representative of the larger population.

There is no need for a browser to download something from the internet. You only need the browser to browse the internet. (hence the name) A simple UI with a list of options was all that was needed.

The web is not the internet

Not every Linux distribution "comes with" Firefox or Chromium. They may be an option on the install disk and may even be part of the default install but they do not have to be installed and there are other choices (e.g. I typically install SeaMonkey because I like the mail client it comes with). In fact I can decide to install Linux on a PC and not install a browser at all. Last I checked it's still hard/impossible to remove IE/Edge from Windows. [1]

[1] Although admittedly the last real work I did in Windows was 7, so please correct me if the situation has changed.

You can remove IE in Windows 7: http://lifehacker.com/5164286/windows-7-lets-you-finally-uni...

I'm pretty sure I've seen the dialog in Windows 10 as well, but not for Edge, which I find even worse than IE.

If you were a web developer you'd be happy to know Edge is so much better at complying with web standards than IE ever was. Would love to know what people miss about IE.


If you're not just repeating an ancient talking point and actually don't understand this, it would be well worth spending some time on Wikipedia coming up to speed on the goals of antitrust enforcement.

The short version is that the actions of a non-monopolist are looked at very differently than the actions of a monopolist.

Additionally, you're dead wrong about "every Linux distribution", and even if you weren't, the fact that there are many of them would moot an antitrust argument.

> every Linux distribution comes with either Firefox or Chromium preinstalled

False. See, for instance, Arch.

The point is that something seems to be actively looking at the user-agent string and then doing wrong things. Had they merely "not supported" Linux it would have worked fine.

Now it might still be a bug rather than malice, but it's a but that arises out of intentionally doing something stupid.

And the parent comment's point is that bug won't reach the team responsible for that :-)

> Any bugs on non-supported browsers would never get reported back to our team, so we'd never hear about them.

Wouldn't this filter out a lot of legitimate bugs that just happened to be discovered first on an unsupported browser?

Statistically speaking, the odds of a bug being found first on an unsupported platform, which represents such a small segment of your users, are low. The odds of it only ever being found on an unsupported platform, even though it's not platform specific, probably means it's rare enough for the business not to care about it.

Not really. Once they get discovered and reported on a supported browser, it sounds like they'd be routed to the team. Theoretically, bugs could exist in supported browsers that only get reported in unsupported browsers, but you'd have to weigh the likelihood of that against randomizing the team investigating bugs in unsupported scenarios.

Terrible customer service here is undeniable though. Customer support should gain you customers, not lose them. Microsoft needs to address that.

Agreed. However, most large software companies have terrible customer support. Google customer support is legendary...in a bad way.

I don't think anyone has figured out how to scale this correctly.

>This is how pretty much every company in the history of ever works.

Not us. If a user comes to us with a crusty-ass Dell with its own localized food chain of insects and our site doesn't work on IE5, they'll wake us up at 2am to tell us that.

> It just didn't make business sense.

I've seen this time and time again and every time the sum "linux" bug ends up affecting some browser/OS combination that is supported. It's not breaking because it's linux, it's breaking because there's a bug and sooner or later it will rear it's head elsewhere.

Not supporting a platform is completely fine. Purposefully hindering performance when it is proven that the software runs well on said platform is one of the shittiest moves a company could make. I wonder to which other products they do the same thing, especially on places where evaluating such behavior is not as simple as changing the contents of a string.

This was reported on /r/linux yesterday: https://www.reddit.com/r/linux/comments/60nj67/office_365_on...

This user did some experimentation with user agents to narrow down the bug: https://www.reddit.com/r/linux/comments/60nj67/office_365_on...

Unhelpful catch-all responses that don't display a shred of effort or care are the bane of my customer support experiences. Nothing hurts my opinion of a company like being brushed off like a bug.

Whenever I google a problem with a microsoft product, and the search ends up on one of these answer.microsoft.com pages, I always click on the link with an enormous feeling of dread.

I don't think I've ever seen a usable answer on that site.

My 7 year old audio interface (E-MU 0404 USB 2.0 for who cares) started making BSODs after upgrading from Windows 8 to Windows 8.1. The latest manufacturer drivers were for Vista.

I reported it on answer.microsoft.com. They asked for a crash dump. Complied. Another non-ms person analyzed the crash dump and suggested that it's USB 3.0 related. Disabling that in the BIOS solved the issue.

But the MS guys kept on going. A few weeks later, a reply that they managed to get their hands on a similar device (!!, cost about $200), but they couldn't find a driver, so they asked for mine. Pointed them to the online driver location (hidden on manufacturer site). Some time after that they commented that they managed to reproduce the BSOD. A few months later they released a fix (into Windows).

I have to say, the Microsoft folks involved in anything driver-related have been the most competent, down-to-earth, and underappreciated folks at the company. If you're a Microsoft driver person reading this, props to you my friend.

> My 7 year old audio interface (E-MU 0404 USB 2.0 for who cares) started making BSODs after upgrading from Windows 8 to Windows 8.1. The latest manufacturer drivers were for Vista.

I had one of those, and the Vista drivers were never released as a production version. Driver support for it was THE thing that kept me from upgrading from XP to 7, and also what convinced me to never again buy a Creative product.

The matter became moot, and XP took a hike, when it finally crapped out one day. My audio interface is now a Focusrite.

Creative products are pretty awesome in Linux.

> I don't think I've ever seen a usable answer on that site.

At least not from a Microsoft employee. Sadly, the majority of posts from Microsoft employees I have seen basically repeat the problem description, followed by "Did I understand that correctly?", sometimes people get generic advice like reboot their computer, make sure their system has all available updates installed, etc.

Saw someone call them out once as giving out "grandma-level advice", I felt it was accurate, no offense to grandmas of course.

Dont forget the 'please provide a full system dump of every possible event and log for your error of 'word wont save''

I completely agree.

Most of the time I get the impression the person writing it is a employee who is reading someone else's notes, has no idea what the answer even is, and then does the best to cover it up by using abstractions, off topic insight and buzz words.

Sorry Microsoft just my opinion regarding this one area. Room to improve maybe ?

I hate that they rarely seem to even read the post. I once had a bad issue with one of my Windows PCs, so I dug through the internet and read all of the support docs I could find. Unfortunately none of them were working. In desperation, I turned to asking on the MS support site. I explained my issue, and explicitly stated "I have already tried XYZ, as per other support pages, and it is not working." Naturally, the first and only response was "Please try doing XYZ".

At least there is an occasional employee commenting. Have you seen the Google support forums?

Google promotes normal users to moderators on their support forums if they just post enough, so instead of being brushed off by some underpaid employee you are being ignored and ridiculed by someone not even being paid to!

I've always found it fascinating that Windows/Microsoft error messages seem to have some kind of UUID (Error #c101a053 is one I found on my search history from 5 years ago), but you _can't look them up by UUID_ on the MS help pages or even online (and sometimes they don't seem to even be unique). I've always wanted to know what they do with these numbers.

I've used that technique in products I built. Not speaking for MS but in my case the UUID was either written into some server log (to hopefully be used to diagnose the problem if reported), or matched diagnostic statements in our source code (so the problem could be diagnosed in conjunction with the code). Using a unique identifier helps prevent the kind of confusion caused when 3 different developers all decide that "this can't happen" is a good diagnostic message to display to the user.

Fwiw the identifier you posted isn't a UUID but the same justification applies.

Right, I expressed myself poorly. Maybe I meant just an ID? My gripe was just that I expected that to index a knowledgebase of error messages, but the one I mentioned, for instance, isn't even documented.

That looks like a NTSTATUS value. You often see also HRESULT values. They are structured values, some of the bits tell you which subsystem generated the error, other bits tell you the error number within that subsystem.

Right. My gripe with it is that you tend to see them thrown into error messages without the corresponding string representation, thus forcing the user to do the lookup by hand.

Seriously, it can't be that hard to call the NT equivalent of strerror(3) when formatting these messages.

As a linux user since the 90s, googling for basic issues on Windows is an unmitigated disaster. For linux I have always got a correct answer.

I was born in the '90s...

but with Linux, the case for me is that given enough time, I can usually find all the information I need to figure it out. With Windows it's Google for 10 minutes then throw my hands in the air and figure out a workaround.

I'm not sure which is better for my productivity: realizing that I accidentally screwed up my DNS resolver and spending the next hour hunting through forum posts and man pages before finding the snippet that explains what I was supposed to do and reconfiguring my resolved.conf symlink or figuring out the quickest, crudest workaround on Windows.

As a sysadmin who has supported the gamut of OS's, the key to windows problem googling is the "-" operator. -microsoft.com -expertsexchange.com ...

Stackoverflow really changed the game. I really should get active there again to give back more, I can't tell you how much a random stackover/superuser question helped me narrow down an issue.

Also, has everyone forgotten about IRC?

<cough>Bullshit</cough> If you were a Linux user in the mid-90's, then about the only place to get "help" was #linux on EFnet. Collectively, I don't think I've suffered more abuse on the internet than in that forum. And, yes, I'm still bitter. It was NOT a noob-friendly place. The best place -- ever -- to get Linux help was, and will always have been, the Gentoo forums, but that didn't take off till the early 2000's.

Oh, it’s quite easy to get help there, and has always been.

You just have to be tricky: People will not help you, but as pedantic as they are, they’ll correct mistakes you make.

You go there, and say "I’m disappointed that you can’t even use <device> with Linux" and you’ll get hundreds of answers telling you exactly how to use it.

#linux, the notorious troll channel on EFnet, only provided help when counter-trolled.

The best place -- ever -- to get Linux help was, and will always have been, the Gentoo forums

True! However, obligatory "Gentoo is rice" link: https://fun.irq.dk/funroll-loops.org/

Sven Vermeulen wrote great docs and the community was my first social media. Then that compiz-beryl thing happened and... where is she now I wonder?

I wonder how much of Linux's recent success (I know it's still a tiny fraction) is just because of Google. I can't imagine using Linux if you take away the ability to Google. The fact that usually the results are posts by actual people and not some company stooge makes a world of difference.

You get the same results on DuckDuckGo, etc. there's no search engine lock-in here.

No tajen, at least the Wikipedia article for DDG gives no hint that it uses the Google backend. Nor had I ever heard of such a thing.

Sorry, doesn't DDG use Google as a back-end, just anonymizing the results?

DDG uses a variety of search engines' responses, including Google's. It has its own crawler as well.


My experience was clearly different to yours, and it was from 1998 onwards. No need for that kind of behavior.

#linux was a troll channel, so that's a poor example. #e (The Enlightenment Window Manager) had people very eager to help. So did #redhat, #mandrake, #debian #stampede, #slackware, and even #linux-users. All were quite active from '98-2002, before freenode swallowed everything.

source: I got trolled by swedes in #linux before abandoning that wasteland for greener pastures listed above.

I don't know about that - with (especially desktop) Linux one has to be quite specific to get an up to date solution. There's been a lot of churn in the stack in last decade (i think the stack is much improved as a result).

Yes. Ubuntu, you'd better be including a version.

Arch? You need to make sure you're not looking at something a decade old.

I often just scope my google search.

Also, I do not find that I can answer every question easily for linux, even though I've used it as my primary OS since ~2002 and have some idea what to google for.

In fact, I have both sound and bluetooth issues on my machine right now that I have given up trying to resolve.

I've been using Linux for the past 6 years (on and off only the first two of those) and I have never had this happen to me. Maybe when I was using Ubuntu it was harder to find good answers that were not specific to someone else's usecase because of the nature of Ubuntu forums.

Back in the day I chose Gentoo Linux entirely based on an evaluation of its forums. It didn't disappoint: In five or so years of heavy use, I only ran into one issue that wasn't explained in great detail in the forums. The ridiculously high bar to entry seemed to do wonders for discussion quality.

I agree. I had the same experience as you when I moved from Ubuntu to Arch, the forums and Wiki are of extremely high quality.

yeah sometimes I have to check the date on the solution to make sure I really want to do that

As a Windows user since the 90ss, when I tried using Linux for a week or two on a spare machine while my primary laptop was in the shop... Trying to find any information on Linux that didn't involve books' worth of text saying 'compile this', 'write this program in C', or 'do this incredibly arcane commandline operation' became an exercise in futility. Whenever I have a specific problem in Windows, I can Google it and either find a relevant YouTube video or something of value in the Microsoft knowledge base (separate from the "answers." Q&A board).

> 'do this incredibly arcane commandline operation'

I have seen my fair share of this in the Windows world, too. Edit registry keys you never even heard of, use that (mostly undocumented) command invocation (I'm look at you, SharePoint!), edit that XML file that sits in a place where it does not even make sense...

On Linux (and other Unix systems), at least you have man pages, on Windows I cannot recall a single instance where the builtin help system has actually helped me. I mean, even MS-freaking-DOS had a reasonably useful builtin help.

With Linux, at least it gets better once you get the hang of it. Microsoft's sorry excuse for documentation is (mostly) a joke. (The exception are developer tools - the documentation on T-SQL and the .Net framework classes is fairly good, even though it's such a mess that it's easier to Google for specific entries than using the TOC or the builtin search... once I find what I was looking for, I do usually find a helpful answer to my question.)

(To be fair, when I first started using Linux, I found it incredibly strange, complicated, confusing and intimidating; within the first six months of using Linux, I was this close to literally throwing my PC out the window on no less than three occasions. So I know the frustration you speak of.)

I will agree that the built in Windows OS help is very sparse. But I find myself (since 3.11) needing it less than I ever needed help with Linux.

If I went back to trying Linux, I'd need a suite of 'just-works' solutions; Plug & Play was the main reason my family moved from DR-DOS & Norton Commander to 95. And of course driver compatibility.

Honestly, if I went to an open OS from 7 at this point, I'd go to ReactOS.

Powershell has man too. It's an alias for get-help.

Man get-command

Get-help get-help

I know, and I like PowerShell's help system. But there are still plenty of commands available that are not PowerShell cmdlets.

But I agree, PowerShell is a huge improvement.

I was once told by Microsoft support that what I wanted to do was impossible, because the code was so old and chaotic that nobody understood how it worked ;)

Most Linux forum answers online are "do this voodoo I copied from someone else and don't understand".

It's a lot harder to pull a specific, coherent, considered answer out of the internet, which doesn't involve duct tape and breakable insecure awful things.

"How do I run x on startup" will as likely get you "download this Ruby script which calls IFTTT.com triggered by when your network adapter connects, btw install this binary wifi driver blob" as "put this with a plain text password in /etc/whoknowsbutitworks lol" as "on your distro with your shell the startup system is XYZ and the startup scripts run like a then b then /home/user/c so put it in ~/c"

> I don't think I've ever seen a usable answer on that site.

To be fair, that isn't specific to Microsoft, and a lot of big company's support sites are useless.

IME, Apple's Q&A discussion site is equally useless. The answers there are always along the lines of "That's by design, you can't do that." or "Why do you want to turn that off anyway?!?" I've had much better luck on apple.stackexchange.com

> "Why do you want to turn that off anyway?!?"

This. I can remember asking years ago, back when I had to work on OS X, asking how to turn off that freakin' annoying jumping icon in the system tray that leaped up and down after every successful print job until you dismissed it, just like an excited two-year-old telling you they went potty in the potty chair AGAIN, "Just like a big kid!" I can't imagine anyone thinking that attention-grabbing, ADHD-exacerbating, flow-destroying behavior was good by design, but was asked, "Why do you want to turn that off anyway?"

Thanks for sharing this. Me too.


The guy would've probably gotten fired if he was honest: "that almost looks like it was done on purpose to force people to use Windows", but he could have avoided completely dismissing the guy.

For instance, by saying: "thanks for reporting this, I'll pass this to the tech team. In the meantime you can keep using your solution if it solves the problem for you".

It's probably hard for a huge company to give good tech support. It's not as if the support guy has any power to be helpful, they probably give him some copy and paste responses according to what the problem is.

The best tech support that I happened to use was Apple's. The guy actually seemed to care about my problem, and bypassed the protocol to help me out when I spilled coffee on my laptop.

I very much doubt this was intentional. If this was a small company targeting unsavvy users to try and upsell them something, sure. In this case the payout might be worth the fallout once people inevitably figure it out.

In this case, I doubt someone thought "hey, let's mess with Linux users and serve them a bunch of garbage, it'll encourage them to move to Windows".

Why not? It's not officially supported. It's not like Microsoft hasn't been doing this kind of thing to their competitors for the last 30 years.

But I doubt somebody would switch from Linux to Windows because OneDrive is faster there.

Also, the percentage of desktops running Linux is still tiny relative to Windows. The last time I saw any numbers (about two or three years back), it was ~90% Windows, ~7.5% OS X, ~1.5% Linux, so there is little incentive for Microsoft to care about Linux desktops.

>But I doubt somebody would switch from Linux to Windows because OneDrive is faster there.

Not for this one reason, but for 'webpages just work faster on Windows', sure.

The only reason I would hesitate to say it's intentional is Microsoft's relationship/experience with the DOJ. Maybe that's far enough in the past and the landscape has changed sufficiently that it's no longer a matter of concern for them.

If the only change necessary to improve speed is to update a string in the UA, I would say that's pretty hard to do accidentally. In theory, it could be an artifact of some internal QoS systems that prioritize requests from Windows boxes without the explicit intent of damaging the experience of non-Windows users, but that seems like a stretch. It'd be interesting to know if Mac UAs experienced similar slowdowns or not.

It's much more likely that Microsoft is interested in doing what they can to make sure that people feel "things just work better on Windows", and little limitations or breakages like this are the perfect way to do that. Windows is Microsoft's bread and butter and they haven't forgotten that.

Sometimes companies with experience getting caught learn lessons on how not to be caught, rather than lessons on following the rules.

There is no reason with the modern setups that entirely different UI pages need to be sent based on user agent detection. Every best practice I have read says to detect for features, and fall back to something more general when a feature isn't present. Clearly that is not happening here, and that little bit of technical incompetence is enough room to slide in a few hundred mb/s of transfers for certain targets.

Microsoft has a long history of pretending to play and throwing curveballs. All the way back to Dr DOS. Their run in with the DOJ was just one time they got caught. They are even doing stuff now with CPU detection and not providing windows updates to people with and older but still "supported" OS and a newer CPU. Just because they won't let it go, they are still patent trolling android handset manufacturers.

Why do we think microsoft has changed for the better?

I highly doubt that someone on OneDrive has KPIs that performance on Windows is X better than performance on another OS. Maybe if both teams were in the same org, then I could see that as a (n albeit very slight) possibility.

Not knowing the code behind it, but knowing the history of the OneDrive for Business client, I could see a few ways this could happen. The OD4B client has gone through a bunch of iterations before being merged with the regular (public) OneDrive client, so along the way, there could have been optimizations added on that were only available to the new merged client. Due to constraints, this could have been done using a simple UA check. These optimizations could have been merged down to the OSX/Linux clients (not sure if they're using a merged one there, or still the separate ones) but since different teams work on the clients (most likely different teams on each client) and server, the Linux client team never told the server team that the it also supports these optimizations.

Easily could see the above scenario happening, it's not completely crazy when talking about big companies that teams don't have the best insight into eachother's work.

Disclaimer: Work on Microsoft. Not on Windows, not on OneDrive, completely different part of the company.

While that type of disconnect is certainly plausible, this type of soft communication arbitrage is regularly used to sabotage projects in corporate politics. It allows the conspirators to keep their moves covert. Plausible deniability is key, and affable management personalities go a long way to keeping people believing in the fairy tale.

I'm sure a company like MS, who've had traumatic run-ins with the DOJ in the past, has internalized this phony management persona even more than most. And I do believe low-level developers who work on the individual clients are probably 100% earnest. They usually are. It's the people in the political structure who set their priorities and schedules and use them as pawns that you have to worry about.

Even if your postulation is exactly accurate, MS still bears responsibility for crippling the Linux client, no matter which specific employee the communication "fault" falls on.

I have no inside knowledge of Microsoft, this is just generic commentary and extrapolation on corporate politics in general. It is possible that I'm incorrect and this is truly an honest mistake. If this gets any attention, management will certainly claim that, and we'll never know the reality of whether it was unintentional or whether "The Linux client supports those speedups" was intentionally swallowed by someone along the line (or whether the patch was delayed for additional review because it was "accidentally bundled" with a bigger branch, or whether the priority has just been "innocently" pushed down, or whether the team is "just understaffed", or...).

The proof is in the pudding with corporate politics. Being in management is being a professional politician. That's always true. They're always going to try to tell people what they want to hear and cloud up the picture around things that that person doesn't want to hear. If Microsoft is continually engaging in a series of accidents that hurt non-Windows clients, that pattern is sufficient proof of management's intent, regardless of what they claim.

I doubt it's a conspiracy like this. More like having to support all of the legacy IE crap out there.

My guess is that they whitelist javascript or other things based on specific browser strings.

Onedrive for Business is a real shitshow product. IMO, the people supporting it scramble to make it perform at all.

Any thought that starts with, "hey let's mess with Linux users..." Isn't very likely to be a good thought

then how else would such behaviour be explainable? I thought about reasonable explanations but i doubt a little background process that notices a unsupported user agent would act up like this

I don't know if MS has earned the benefit of my doubt, but it's conceivable that the software could have implemented platform-specific behavior or optimizations that ended up slowing things down for some reason.

Yeah after reading some other comments (also on reddit) the idea that they push fixes platform specific and linux just defaults to a state with many missing fixes sounds like a reasonable option.

So they supposedly maintain duplicate version of core functions in plateform specific branch and never merge them to master...

That would only be slightly less worse than the sabotaging theory.

Indeed. But it sounds like something _new_ microsoft would do and does not imply that they are still _old_ microsoft with a new hat.

It could very well be because of a lack of testing on that platform. Assumption is the mother of all fuckups, especially when you speculate about intentions.

Sure it could.

At the same time, this company has printed money for 30 years, not just beat the competition but killed the competition in many cases, and even made that an internal mantra. They have a pile of very smart people, money, etc.. there are also browser compatibility test services. They could have a VM grid with every interesting browser ever and it's not a big cost to them. A 15 person startup? I get they you might skip some browsers and focus on a key supported set. The tooling for that VM grid is also something I think a lot of the community would eat up of MS made available, there are lots of ways to build good karma and improve community relations.

Intentional or not, it's just bad optics, if nothing else. A slate with the windows 10 linux subsystem looked like an interesting environment to play around with and maybe give a shot. This sort of thing makes it look a lot less interesting. No joke, I was thinking of getting my kids one.

true, history just made me very sceptic about everything microsoft

"thanks for reporting this, I'll pass this to the tech team"

It's not something they can say. The product is unsupported and the "tech team" won't care.

Doesn't mean they can't file the issue. Then the team just checks the box on their ticket solution that says "WONT FIX" or "NOT SUPPORTED" and moves on with their lives.

Customers would feel respected, the workaround would be found and used, and no one would feel ignored. It would leave a customer happier than telling them they don't warrant interest.

Personally I'd be happier being told honestly I don't warrant interest, unsupported platform, I need to look elsewhere, than being strung along with false impressions.

It can always be passed on. The 'tech team' may say 'wontfix' because it's unsupported, but it's very clearly a bug that could bite them on 'supported' systems in the future as user-agent sniffing is notoriously unreliable.

Much like how Netflix monitors torrents to find out how popular movies/shows are, Microsoft could tabulate these reports to find what OS their customers want to use with OneDrive. But if they don't get recorded, there's no info to learn that from.

Much like how Netflix monitors torrents to find out how popular movies/shows are,

Wait what? Really?? What are they monitoring, seed ratios from trackers? That's an interesting/novel way of researching demand-makes sense given the service Netflix provides.

I don't know if they're still doing it. But they were in 2013.


Oh goodness the irony on this page

"SEE ALSO: Netflix’s ‘House of Cards’ Falls Prey to Piracy"

Still, that's a very interesting and out of the box method of thinking by the Netflix team. Definitely want to try and find out more about this; thanks for bringing this up!

"never attribute to malice that which is adequately explained by stupidity"

This lets people get away with playing dumb.

Maybe it's not wise to automatically assume malice if incompetence could be a factor, but it's also not correct to rule out malice just because incompetence is a possible explanation.

"Not supported" is an acceptable first half of a response, but all you really have to add is "I'll pass this on to the tech team" and the tone changes entirely.

But if it's not supported, they can't pass it on to the tech team; that would be against policy. Changing policy to make companies support unsupported software is a hard sell.

That doesn't sound right at all. It's been a number of years since I have been at MS, but any engineering team I worked on would have wanted this feedback and fixed the problem. Not supported officially doesn't mean a dev can't spend an hour on a likely simple fix to help a customer - depending on who saw this feedback there are certainly many devs at MS who would fix this without even being asked. I'm willing to bet that's happening right now and this will be resolved in a few days.

I was fortunate to participate in a bug fix driven by MS (for the Tedious sql adapter for node), and it was impressive. The issue was noticed by someone who worked on Azure (not Azure SQL), who upstreamed the report to appropriate people in the SQL teams who then dug in and found that there was something that wasn't being set right in the tedious adapter.

It wasn't an MS product, or supported, and they still took the time to help. I'd be surprised if one didn't find similar responsiveness from at least some of the o365 developers. More often than not, something is "unsupported" not because it doesn't or shouldn't work, but because it doesn't have the dedicated testing resources and in case there is an edge case bug that would be excessively costly to fix (ex: dealing with stupid flexbox issues with the current version of Safari on mac).

In any case, it doesn't matter, the response was a bad, canned response that doesn't take into account the troubleshooting the person reporting it already did.

Feedback from support teams is pretty much the only way the engineering team learns what we need to improve.

Why does a web app care about my OS?

"Supported" in this context is clearly "we want more money from your despite you already having paid the agreed amount for this product".

I was wondering, too. Firefox is Firefox, no matter what OS it runs on. If OneDrive works well with Firefox on Windows, why wouldn't it on Linux or any other operating system?

This seems like a valid bug per the Reddit thread [1].

[1] https://www.reddit.com/r/linux/comments/60nj67/office_365_on...

So... Just lie? This isn't going anywhere, the platform isn't supported. I'm pretty sure the powers that be remembered that Linux was a thing when they made that decision.

You don't have to lie. Under these circumstances, I often say to the people reporting it very directly "That's not a supported use-case, but I will make sure the relevant people know anyway".

I then go and let the person who owns that product know. Half the time, they say "that's not a supported usecase and it's a pain to change, so it's not happening". The other half of the time, they shrug and say "Put a ticket in, if I can fix it easily I will, I'll take a look when I have time".

Unsupported doesn't mean "no", it means "we're not going to invest noticeable effort into it, and it's lowest priority". Easy fixes may happen, but results are not guaranteed.

Sure... But we're talking platform support here, not some corner case no one thought about during design.

No, we're not. Read the statement again. If you fuck with the headers, you get a totally different and much higher performance result _on linux_.

The charitable hypothesis someone else raised is that there's a bug in how onedrive handles unknown user agents. Neither you nor I have any idea how much effort that will take to fix. You'd hope not a lot but you should never make assumptions about another man's stack. But if it is low effort to fix, Microsoft could get a small land-slide of partial compatibility with one change, which is good PR even if they don't officially support the platforms. It's definitely worth asking nicely rather than giving up and moping about it.

But they are deliberately throttling this, in an effort to get people to have to use Windows.

That's an assumption. There exist other explanations that are just as valid.

I agree that other things might be possible, but looking a the history, assuming malice is a reasonable starting point with microsoft. It has been right many times in the past.

As the former head of a customer support department, I can tell you that the most important aspect of communication with a customer is empathy. Even more than expertise, if you can demonstrate that you care about their problem and will get to the bottom of it, the encounter will most likely result in customer retention.

Similarly, has anyone else noticed the overly fake "I want to help you." Interactions with more companies lately? I mean it couldn't be more scripted if someone tried. I applaud the effort, but actual caring/empathy is meaningful, the fake, scripted attempts at it that I've been experiencing lately feel much more condescending than anything else.

Yep. Comcast is a big fan of this method, which is really infuriating and condescending because they pretend to understand my frustration while they fail to fix my problem and pass me off to someone else.

Really? Because nothing grinds my gears more than fake sympathy/empathy coupled with an inability/unwillingness to understand my problem and an urgency to get me off the phone. Which is pretty much how customer support works.

What I want from customer support is for someone to take the time to understand why I am calling. Not to pat me on the head and tell me things will be alright while urgently trying to get rid of me.

But that is exactly what the GP said. You want somebody to care about you and your problem and to make an effort to solve it.

He said "the most important aspect of communication with a customer is empathy".

I disagree. When I call support I'm not looking to commiserate or share my misfortune. I'm looking for acknowledgement of and resolution to a problem.

This view that empathy is what's important is the reason why hold messages say "your call is important to us" and why all customer support feigns empathy to my emotional plight when I call them about anything.

Empathy, in this context, means to me that I care about the problem of the person I am supposed to help, which increases my motivation to actually help them.

Saying I care and actually caring are not the same. When I call a hotline with a problem and am stuck in a loop telling me how important my call is to them, it tells me they don't care at all.

At least that how I understand the comment, and since I also wear a helpdesk-monkey-hat at work, it is how I try to deal with our users.

When I called in about this bug a few months ago the support representative was surprisingly helpful. He didn't bat an eye when I said I was using Ubuntu, quickly researched the issue while we were talking, and suggested (while making clear that it was not an official response) that I work around it by spoofing the user agent string. Seemed genuinely sympathetic.

Yes, this. It just makes it seem like they're hoping you'll give up and go away.

After this post blew up, it seems Microsoft PR has swept in and deleted that original useless post, replacing it with a new one saying the problem has now been resolved. If only every legitimate support thread could be a top post on Hacker News!

I don't really see it that way. I don't think Microsoft would be expected to offer support for an operating system that's not officially supported. I could see only two ways this could've turned out, either "we're planning to support linux in a future version, we'll keep you updated when that happens" or exactly what we got here.

If this is actually a bug then I think it would be rather inappropriate for the support guy to escalate this to the devs when it only happens for an unsupported platform. And if they're purposefully throttling linux hosts then they won't admit to it there.

So the entire exchange (including Dam Lec deciding to abandon Onedrive) seems perfectly reasonable to me.

Obviously it works on Linux; the slow down is the direct result of OneDrive's User-Agent based code paths.


People forget that they're _actively_ appearing to break it by using this UA detection. No company should _ever_ use user-agents for feature detection, because user agents themselves are screwy in so many ways [0]. Honestly, I feel like this was someone actively deciding to break the system on Linux (or any unrecognised UA). Wouldn't any reasonable developer just send back a fully-featured page if they couldn't understand a UA?

[0] http://webaim.org/blog/user-agent-string-history/

UA "detection" is an unworkable mess (i.e. a bad idea) when it's trying to differentiate between different consumer web browsers. But UA detection works just fine when it's only trying to differentiate between browsers as a whole, and things that are not browsers—like web spiders, or curl(1), or your native client app.

I have a feeling that this is the latter case. The detection code was likely written to give a higher QOS priority to direct browser access, and a lower QOS priority to the native OneDrive sync service built into Windows (because it happens in the background.) But in doing so, they probably made the check ask the wrong question—"is this a browser" instead of "is this our client"—and thus wrote the check with a browser whitelist pattern (that was never tested outside of UA strings from browsers on Windows), rather than a blacklist pattern (their one sync-service UA.)

Doesn't giving web crawlers different pages than the user facing UI get you kicked out of search engine indexes? The original ticket indicated different pages were served, not just QOS.

(I think) we're talking about pages served to logged-in users—i.e. the pages for files and folders in a given user's OneDrive account. Web crawlers wouldn't be able to reach those either way, so it (inconveniently from a fail-early perspective) wouldn't affect anything if the detection code does something stupid/crazy in the case of crawlers.

You don't know when this code was written or what the original purpose was. User agent detection used to be a best practice. Onedrive for business is a mountain of legacy software going from sharepoint to groove to who knows what. This bug could be buried in some library that was written 5+ years ago. Maliciously going out of your way to not support Linux sounds like a good way to have your code review rejected.

To this day, user agent detection is the only (practical) way to avoid sending large polyfills to the 95% of clients that don't need them.

> No company should _ever_ use user-agents for feature detection


There are plenty of bugs that cannot be detected using feature detection, especially with events and <input> elements. Sometimes you can find a browser-agnostic workaround, but sometimes the only solution is to sniff the browser.

It is especially necessary if you need to support "obsolete" browsers that your customers still use.

It is important to really try and avoid browser sniffing when "fixing" bugs in current versions of browsers (since your "fix" is likely to break in future versions).

Note, feature detection usually implies that you are using JavaScript.

Yea, call my cynical, but Microsoft Office is one of the few applications that doesn't have a good alternative on Linux. So this seems like a ploy to stop people from using Linux. At least the ones that would like to use Microsoft Office.

And what if some programmers are put unto fixing this, to realise the normal code path has a number of other bugs for linux? If you write web software you clearly define what you support and what you do not.

I've fallen into the "I know this browser is not supported, but everything works except for X" trap. Where you first spend a month fixing other bugs that also don't work, only to end up with a more complex QA dev process since you need to make sure all new features also work in this other browser or environment.

It's true, but the flip side is don't offer a web based product if you can't support a wide range of web browsers on multiple OSes. This gives me flashbacks to old (hopefuly dying) "web based" enterprise apps that were browser accessible only by a one magic version of windows explorer with a giant slew of automatically downloaded browser extensions. Just produce an app if that's all that can be supported.

You are right, but I guess Microsoft is somewhat biased towards their own products (Windows in this case).

If said code paths work correctly on the supported operating systems and browsers why does it matter? You could say that it's a poor technical decision but that's really not up to the support to address.

I guess you could reproduce the bug on a supported OS and browser by manually changing the user agent but I doubt the support would accept that either. It would be like complaining that the site becomes unusable if you disable javascript or images, they probably only support "vanilla" browsers.

Web apps are marketed as "working anywhere" you have a browser. The underlying OS should not matter, and that again is a selling point. And presumably this issue is present on mobile browsers with low market share.

That's not the point I'm trying to make. Clearly support has to draw the line somewhere, "working anywhere" is not a reasonable commitment. Linux is not officially supported, the problem doesn't occur (I assume) on supported configurations, therefore it's not up to support to deal with this.

I genuinely can't imagine what else the guy could do, checking for unsupported configurations is probably item #2 on his script, item #1 being "say 'Hi'".

Well if they want to play games with semantics, I'm pretty sure one could reproduce this bug on a Windows machine.

Remember when browsers were supposed to untether you from the OS? How is operating system support at all involved for a web-based application?

But it's not a support problem since clearly just changing the ua makes it faster. It has nothing to do with linux. Somebody hardcoded it.

That's because it is not a bug, it is what they want, for whatever reason...


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact