Whilst I don’t usually come into contact with the Heart Internet people too frequently (I only use them for a couple of domains personally and have experienced past annoyances with SSH/Shell access to a Heart Internet account), I did this morning. I have no issue with their manner, as the person I spoke to was very polite.
Heart Internet Support Ticket Statistics
There are some rather painful statistics that this ticket resulted in:
|Opened:||17/11/2014 at 11:09|
|Last Reply:||22/11/2014 at 15:54|
|Time opened:||5 days, 1 hour, 43 minutes|
|Number of ticket updates:||59|
|Number of support staff involved:||12 (not a typo, 12 different people)|
|Issue ultimately resolved:||No|
|Phone calls made (by myself):||2|
|Times Heart Internet blamed PyroCMS:||4|
|Compensation offered by heart Internet:||3 months free hosting|
|Times Heart Internet apologised:||4|
|Amount of my own time wasted:||A lot|
In short, I had a run of the mill MySQL connection error. PyroCMS was complaining, saying:
mysqli::real_connect(): (HY000/1045): Access denied for user 'THE USER NAME'@'10.0.44.120' (using password: YES)
Unfortunately, when all the connection details are correct in the script, there is little choice but to raise a support ticket. I raised a detailed ticket, provided locations to where the site was connecting to the database and a location to the error log (which was a nicely formatted, CodeIgniter log file). I explained everything in detail.
Without over explaining things, here is how the exchange via email played out (note how long the process is taking, with zero progress):
11:09: Raised initial ticket
11:26: Heart Internet oddly add a reply saying they are looking into it. I personally prefer them to only add updates when they have solved the issue, but still.
12:03: A Heart Internet reply, asking if I am having trouble connection to the database using PHPMyAdmin or the live website. Seriously?!?!?!?!?! Read the original support ticket Heart Internet. Nearly one hour has passed and your second reply is confirming my original question.
12:08: I reply, basically asking to read my original support ticket.
12:24: Heart Internet update, very strange. They say my database connection is setup correctly, but I can’t connect to the database due to PHP being out of memory – wtf? They asked me to create a custom PHP.ini that increased the memory limit, script timeout, maximum post size and max file upload size values. Now unless I’m missing something, I simply fail to see how increasing the max allowed file size that I’m allowed to upload, or even the maximum allowed post size, will help fix a MySQL connection error. Their response was:
Would you be able to increase the PHP limit for me and see if this resolves the issue?
To increase the memory assigned to PHP, I would advise setting the following in a php.ini (or php5.ini if using php5). You can create this file in notepad, then upload it to your webspace:
upload_max_filesize = 128M
max_input_time = 120s
memory_limit = 156M
max_execution_time = 60s
post_max_size = 64M
Also, it may be worth adding the following to a .htaccess file:
I had a read about the RLimitMem MAx directive they suggested I use, at http://httpd.apache.org/docs/trunk/mod/core.html#rlimitmem – this is basically another way to tell the site to use more memory. Odd …
12:35: Of course changing PHP values does not fix a MySQL connection. I replied saying “A database connection error will not be fixed by changing the amount of memory allocated to PHP, file upload limits and the script timeouts.”. I confirmed their settings did not work
13:23 Reply from heart, saying they have increased “the values” for me. By the values I assume they mean the php.ini and/or htaccess file values mentioned previously. However, after a check they are the same as above. Not sure what “values” have actually been changed.
14:08 Reply saying the above did not work. Getting a little bit frustrated by now. 2 hours have passed and no progress has been made. I ask someone from Heart to call me.
14:59 Reply from Heart, said sorry for the delay and stated “but it seems to be a problem connecting to the actual database”. *&TD(YD*D(D* – I know this, hence me raising a support ticket now over 4 hours ago! As we’re making no progress here I decided to try to my luck and call their support number. The last option is apparently for support and other enquiries. I am answered almost immediately, explain the situation and ask if I can speak to a manager/technical person to get this issue resolved. The person from heart Internet immediately begins to (rather ironically) repeatedly quote “this telephone line is for sales only, please update the support ticket”. I’m well aware Heart Internet offer email/ticket only support – I called in the hope that someone would take the initiative to solve the problem and go the extra mile. When the person started to quote the standard reply, “this isn’t a support line”, wouldn’t put me through to anyone else and started to argue with me about what a support call is classed as I decided to hang up. At this point I had a meeting to go to and needed to leave.
16:25 A different person from heart Internet had now replied who said he was the manager at Heart – progress! Again, he apologised for the situation and said he was passing it onto a senior member of the technical team, as he put it. I have always thought when you raise a support ticket with a hosting company, that the person who answers you has some kind of technical appreciation. I wondered exactly who I’d been talking to at Heart Internet for the last 5 hours. However, kudos to someone for stepping in.
16:58 A reply from the latter technical person. Again, can’t fault Heart Internet’s manner as everyone was polite. This person had narrowed the issue down to a special character in my MySQL password and Heart Internet’s implementation of MD5, as they put it. He’d changed the password. I verified this was working as I could now connect to the database remotely. The be fair to Heart Internet, they did agree to add 3 months of free hosting. However, I just want the site to live – this is very rapidly turning into a saga and making a very quick job (uploading a PyroCMS website), a very painful one.
18:09 Arrived back from my meeting and added a reply. The database issue seems to have been sorted but the site (PyroCMS) wasn’t loading – which is odd, as well made system like PyroCMS work without any faffing usually. I was getting gateway timeout errors, dropped packets errors and a load of errors relating to timeouts in the Apache log. Added my reply and moved on. The site has now been offline for the whole day.
19:06 Got a reply from Heart, they still working on it. They think the issue lies in how the site selects a database to use. As this is a PyroCMS website (v 2.2.5 Pro) I can’t see any issues on front to be honest. Also, because the site works flawlessly on Toshost and 34sp (tried it on both for my own sanity).
19:43 I explain to Heart that PyroCMS is very popular and solid platform for websites. I explain I have an exact mirror of the site running on a sub domain with Tsohost.co.uk (N.B: affiliate link).
19:47 Send over a reply to Heart will a list of queries PyroCMS runs (via the CodeIgniter Profiler).
20:24 **** Facepalm moment ****. Heart Internet reply saying that the query potentially causing the issue is “SHOW TABLES FROM `[THE DB NAME]`”. They ask me if this database exists. Really!?!?!?! There is a single website hosted on this account, with a single database. Come on Heart Internet …
18:47 We’re now into day 2. In nearly 8 years of doing web development, I have neve rhad a ticket gone on this long. I replied saying I can connect to the database remotely and run the latter query. I even provide a screenshot 🙂
19:14 A reply from Heart Internet – again very polite. However, they ask me to send them a link to the page that displays the Gateway timeout message!?!?!?!?!! I have mentioned this previously to them and there is single account and domain hosted with Heart Internet.
20:06 I send Heart Internet a link to the website in question. Seems rather silly/obvious as to what site this will be about as there is only a single site hosted for the account in question. As far as I’m aware heart Internet don’t support websites they don’t host 🙂
20:31 Update from heart to say they are looking into it for me. Again, I’d much prefer them to actually look into it and reply to say it’s resolved. As it stands it’s been 20 minutes since their last reply. Comparing experiences with Tsohost (N.B: affiliate link), Nublue and 34sp tickets rarely go on 20 minutes.
22:52 Right, it’s official, Heart Internet simply do not understand the issue. I am literally speechless at the poor level of support and lack of technical understanding. This ticket has been going for close to 2 days now. Heart Internet replied and said (I quote): “We’ve tested your database using a test script, and can confirm that it is working correctly, so this must be a problem concerning the scripts on this site. This is the test script I used: http://www.mysite.org.uk/mysqltestscript.php” (see here for the script). Heart also left that script in my public directly, cheers for the security hole guys. Now the previous day another person from heart Internet, in the same support ticket, solved connecting to the database. The issue is the gateway errors the site displays. The fact Heart Internet are blaming the “scripting” is frankly joke worthy. The site uses the latest version of PyroCMS Pro to date (v2.2.5) and the code is solid, well tested and works (hell, just look at the PyroCMS Github account, there are endless lists of commits, issues etc. Why does the exact same website work flawlessly on 34sp and Tsohost web servers, but not at Heart Internet. After 2 days, this is what Heart Internet have come up with. Are you kidding me Heart Internet? Not going to reply now, am too annoyed at them – Heart Internet have wasted my time completely. Can the Heart Internet support really be this bad?
00:34 Heart Internet replied saying they do not normally provide coding support so this issue isn’t something they can look into. I have not asked for coding support once Heart 😉 We’re covering old ground here and getting nowhere unfortunately.
03:10 Another reply from Heart, this time a different person. They say the problem isn’t with the syntax of the MySQL query, but the issue apparently lies in the script and the initial database connection. Heart end their reply basically blaming PyroCMS, saying they don’t what the scripts are doing behind the scenes. They again ask if the site is hosted elsewhere. For the fourth time I say the site is hosted and working with Tsohost and 34sp. I have also got the site working on a couple popular Vagrant boxes too. However, the site will not work with Heart Internet. Anyone seeing a pattern here? Heart Internet also comment that the site has a high timeout time. Previously Heart Internet advised this, yet are now blaming it as an issue. Lower the script time out to a normal levels and the site does not load.
18:31 I reply to heart’s previous ticket. I state I have no idea where we go from here as Heart Internet are blaming “scripting” for my issue. I also note that the ultra insecure database connection script placed in my public directory is still present. ….
19:36 Another reply from Heart Internet support. Another face palm moment. Heart yet again say they do not generally provide with coding websites so cannot investigate my issue. Again, I have not once asked for coding support – I’m a web developer by trade – why would I ask a hosting company (said in loosest sense possible at this stage), for coding support? I wouldn’t. Heart say “Can you advise what the 301 redirect is that the site makes almost as soon as it is connected, where does this redirect to?”. There is not 301 redirect.
21:13 At this stage, my client adds a response. The client is understandably very annoyed. Comments at their lack of telephone support, incompetent technical support, time his site has down due to heart Internet. Even the client, who is not a technical person spots Heart Internet constant get out clause for everything (blame it on “scripting”) doesn’t follow on, as the site is working with several other hosts. Client quite rightly says that Heart Internet’s offer of 3 months free hosting (worth £30 I believe) goes not way to compensate the time lost on this saga. Fair play.
21:55 To my surprise, heart reply to the latter query and state “We are trying our best to resolve this issue, but as previously mentioned we do not support coding.”. Literally, wtf?!?!?! They say they have never heard of PyroCMS so cannot help. They say they are finding it hard to walk through the software step by step to “try to diagnose why the CMS is not working.”. I assumed the makers of PyroCMS would be interested in a large company like Heart Internet blaming “scripting”, so I reached out them – quite liked the reply:
@roballport Sounds like you should find a competent host. Or talk to a different support rep!
— PyroCMS (@PyroCMS) November 21, 2014
22:03 My client again replies, who is visibly getting more frustrated now. The client suggests that another member of the Heart INternet team look into the issue who maybe has more experience. The client also makes a rather astute observation: “Strange you’ve never heard of PyroCMS yet you said in an earlier reply that it is widely used –
“even for widely-used CMS like WordPress or PyroCMS”.”
22:23 Again heart reply and AGAIN they state they don’t provide coding support. The person from Heart is asking for myself to respond about the redirect issue (which doesn’t exist)
18:28 I added a reply this time. Stated there is no 301 redirect, the site is not getting that far. All I saw were repeated 504 timeout errors. I was also confused as to why I was needed to advise on a redirect? Heart Internet host the site and have full access. Why couldn’t they disable the redirect (not that any redirect existed, but still …) themselves. As it stands, they bought themselves a day and made the ticket drag on further. Well played Heart Internet. I even went the extra mile and told them run a curl from the shell to provide no header was being set. here is the output at the time:
[18:21:23] rob@rob:~ $ curl -I -L www.customerswebsiteurl.com HTTP/1.0 504 Gateway Time-out Cache-Control: no-cache Connection: close Content-Type: text/html
I also commented that Heart Internet had left a very detailed logging file and two php scripts directly in the publicly visible folder – this is absolutely inexcusable for any company offering web hosting, where security should be a priority.
19:44 Reply from Heart. Say a script is timing out, they aren’t 100% sure what the issue is. Tell me to remove all plug-ins – assuming all websites are written using WordPress. This is PyroCMS, not plug-ins are used – it’s a simple site that utilises the excellent Streams, available on the “pro” version. * shakes head @ Heart Internet *. To make the reply even more silly, the support person signs with “if there are any more problems please let me know”, as to say the issue is solved now.
20:33 I add a reply and am getting a little frustrated now. I ask them to be honest – if there is no one at Heart Internet capable of fixing this issue, I ask them to say so. At this stage I noted to Heart that site had been offline for 3 days, 8 hours.
21:17 Yet another useless reply from Heart Internet. I’m sure they are trying to annoy me at this stage, as their support cannot be this bad. They added a new reply, just to say: “I am going to ask one of my colleges to take a look at this to see if they can provide any insight on what is happening here.”. Great, I mean what have we doing for the last 3 days.
23:49 I add a reply and try my best to be patient. I said: “With the greatest respect, why hasn’t someone in the know been asked to look into this, now days ago? I’m very confused”. I also noted that the error logger was picking up lots of new database related errors: “Invalid query: SHOW TABLES FROM `[the clients db]`”, “Error while reading INIT_DB’s OK packet” and “Unable to select database: [the clients db]”.
23:53 I also add, that the place PyroCMS may make a redirect is in the Public Controller (see https://github.com/pyrocms/pyrocms/blob/2.2/develop/system/cms/core/Public_Controller.php#L27). However, there were no redirects in the database anyway. Not that this makes any difference, as the site cannot connect to the database anyway.
04:48 Heart Internet reply and assure me that senior people have been looking into he issue. This, I do not believe for one second. A senior level support person would not suggest increasing the PHP file upload limit to solve database connectivity issues / 504 gateway timeouts. Heart Internet say that in their entire history, they have only had one other support ticket about PyroCMS. Also, as expected, AGAIN (!!!!!), they say they don’t supply support for coding. They say that switching to PHP 5.2 (really, in 2014 …) fixes the issue. Switching does allow the site to load. However, as I saw Heart offered PHP 5.5, I used features from that language. The support person was very happy at this stage and said “Guess what? The site loads now! And really quickly too!”. Goody! He then draws a rather funny conclusion: “So it appears PyroCMS only properly works in a really old version of PHP – which is not a good sign. It should be optimised for at the very least 5.3, and working in 5.4 and 5.5.“. Fail. Additionally, as Phil Sturgeon points out, the upgrade from PHP 5.2 is not trivial.
09:13 I add a reply, now realising I am fighting a losing battle. I ramble on about how popular PyroCMS is, how well written it, how well unit tested and point them to their Github page – where it demonstrates how active the software is.
09:15 Added another reply to mention that Heart have left 2 further debugging scripts in the public folder for anyone to view/abuse.
09:36 Heart Internet reply and proceed to give me a lesson in PHP – very nice considering I am a web developer, with 8 years experience, by trade. Heart Internet try to justify leaving insecure scripts viewable by anyone using the old “Security through obscurity” arguement. He also reminds me that PHP scripts are not viewable directly and that the server handles them. Woah – thanks for that. What made me laugh the most was a comment Heart Internet left in their own script:
“// The variables have not been adequately sanitized to protect against SQL Injection attacks: http://us3.php.net/mysql_real_escape_string” – the full source to that script can be found at https://www.web-design-talk.co.uk/examples/heart-internet/lol.phps. Oh the irony Heart Internet.
09:42 I reply and say whatever their reasoning, such scripts should not be present. End of story.
10:09 Heart Internet add another reply to justify their security error: “Any testing scripts are usually removed once the issue is dealt with however in some cases these are left in case the customer wants to keep hold of a simple testing string”. So Heart Internet left the script there in case I wanted their god awful, insecure “script” for testing. Really Heart Internet?
16:20 I add another reply to say the site is down again for another reason, this time we are back to “503 Service Unavailable. No server is available to handle this request.”
16:36 A Heart Internet reply, pretty quickly this time. Oddly, he cannot see the 503 error “his end” and says “is there a specific page or process that is resulting in a 503 error for you?”. He also believes he has found the ultimate cause! Heart Internet paste a few lines of the Apache log that shows the favicon.ico not found. Granted, I need to add one, but this simply would not cause the issues described here.
20:04 Heart Internet then proceed to offer their most pathetic piece of advice so far. Note that it was Heart Internet who suggested downgrading PHP and stated that was the only way they could get the site to load: “If the change of PHP version caused issues, have you tried switching it back using the PHP switcher in eXtend?” I was beginning to think that Heart are here to have a laugh at my expense.
21:21 Here is my reply: ” Earlier today your colleague said the site only works with PHP 5.2. You are now telling me to switch back. I’m literally confused. This has arguably been one of the most painful and fruitless support tickets I have raised in 8 years. I’m completely lost at this point.”
22:59 heart add another one their pointless replies that does not help. This time: “Thank you for your reply and I am very sorry to hear that. Please bear with us whilst I review this ticket”. I waited long enough; this saga has been running for 4 days now. At this point, the customer called me and decided he wanted to move away from Heart Internet. I tell the customer to get the site live, that a quick A record change is the quickest, I can then migrate his emails away from Heart later on. I change the A record in the Heart Internet control panel.
14:11 In a cruel twist of fate, I am forced to open a further Heart Internet support ticket. Not looking forward to this harsh fact. The “A record” change I made 14 hours ago, has not been submitted and is still pointing to the old IP. I’m aware of the whole “DNS caching/Propagation” answer. Whenever I made past changes, they are always visible within 10 – 15 minutes in the UK. Online ping tools can be used, to demonstrate that the IP has updated in Europe, but not for other areas of the world. I raised a support ticket asking Heart Internet wtf they are doing.
14:19 I updated the site ticket expressing to Heart how patient I had been throughout this and to say the site would be moved away. The customer has basically stated that he wants nothing to do with heart Internet after following the days worth of updates.
15:20 As expected, Heart Internet type “DNS” into their customer support help system and add a predictable copy and paste answer mentioning DNS propagation. In nearly 10 years of being involved in hosting/web development not once has DNS propagation in the same country of residence taken 14 hours. This typically happens within 15 minutes. All I want to do at the moment is get the site well away from Heart Internet so it can go live.
11:11 I noticed a reply from the Heart Internet support manager. To be fair to him, he apologised and agreed with my fristrations. He said the resolution of the ticket his team offerred was not acceptable. He went on to blame to poor support on the fact that PyroCMS is not on the list of preinstalled software and that their support department was busy. I’m glad he admitted one area that Heart failed upon – taking ownership of the problem. He admitted that the people involved could have done more to reduce the time taken for a resolution (this ticket has not been resolved to this day, but still). If you’ve read this far (apologies …) you’ll have seen the majority of the replies by Heart are there to simply move the ticket from their job list. For example, instead of taking time to undersatdn and solve the problem, the majority of the people involved gave a copy and paste, overly generic reply. I’m sure in the short term, this cleared the outstand tickets figure for them, for ultimately, forced this ticket to turn into a rather large saga. He offered 3 months free hosting. I appreciate the offer, but all services have since been migrated away from Heart Internet.
Unfortunately, on this instance, Heart Internet failed on a plethora of levels to provide basic technical support.
Heart Internet Support Review
Heart Internet have lots of nice shiny reviews for their support plastered over the internet and people seem to generally pleased with them. However, after dealing with their particularly poor support, that demonstrated a clear lack of technical and problem solving ability – I would highly question this. When reading a forum thread a couple of years ago, something poster said (who had a very bad experience with Heart) stuck. He said that Heart Internet are fine to use for web hosting as long as you require zero support. For me, that sums them up very well and is a reason I suspect why they are still able to host websites. For one minute, I do not believe any customer would stay after having a support ticket go on for close to 5 days. I’m sure if I was hosting my static HTML website, that Heart would be great. However, when a technical issue comes up, like my own, Heart quickly demonstrated their lack of technical knowledge. Throughout the ticket I spoke to multiple people are Heart Internet, some claiming to be at “senior” level. Each person fell short and could not solve the issue. Some of the solutions they suggested simply could never work – fixing a database connection issue my increasing the PHP file upload limit – wtf?
What did frustrate me greatly, throughout related to Heart Internet’s frequent updates. I was notified they had added reply, expecting a fix, only to find out it was a “we are looking into your issue”. Personally, I’d prefer Heart spend time on fixing the issue, not posting meaningless update messages.
Another issue that was very close to annoying me was Heart Internet blaming “scripting”. To me, that’s a catch all explanation for any web issue when you can’t fix it. Now if the site had been some horrible vanilla PHP I had written 8 years ago, maybe. However, the “scripting” they were claiming sucked, was none other than the rock solid PyroCMS. Heart Internet went one step further and constantly quoted their “we do not provide coding support”. Fair enough, but I not once asked for coding support, not once. Even when my client added an angry response to the ticket, asking wtf Heart Internet are doing, they still replied using that exact phrase.
Heart Internet have a policy whereby they do not provide telephone support. To me, in 2014, that’s very strange, as all the big hosts offer this. After the ticket in question had been open for 2 days and could no progress had been made, I decided to call their support line, to try and get the issue sorted. Sometimes, speaking to someone is worth a lot. I called their support line and after being on hold for a few minutes I was answered. The second I mentioned “support ticket”, the operator proceeded to rather aggressively quote their “no telephone support” policy. I was painfully, aware of this fact and was simply asking for Heart Internet to go the extra mile to resolve what was quickly turning into, a saga. I asked to speak to a manager or someone who could help. Again, the operate very aggressively quoted their policy. I had to say that I am not asking for support and want someone to look into a long running, existing ticket for me. When the operator began to argue with me about what is classed as support, I decided to hang up. Heart Internet, I assure you, if this is how you treat customers, your business model is flawed. I decided to call again, but this time try the “sales” option. Rather oddly (or not) someone answered within literally seconds – no holding this time when heart Internet smell a sale. I again explained the issue, but was again met with the same answer. I was told to “update the ticket”.
Heart Internet has been around for quite a while. I’m at a loss as to how poor their support is. After reading forums, I was aware Heart Internet aren’t famous for their support, like Tsohost.com for example. But how can it be this bad?
I compare this horrible saga with other hosts I use more frequently like Tsohost.co.uk (N.B: affiliate link) and 34sp. Especially so for Tsohost.co.uk, I’ve raised some insanely convoluted tickets that must have been in a total pain in the behind to troubleshoot for the Tsohost support staff. However, issues were always resolved in a matter of minutes, not hours. However, with 34sp and Tsohost, I did always get the distinct impression that I’m speaking to a technically knowledgeable person. With Heart Internet, I get the impression some sort of crib sheet is being followed, as their suggestions in this instance simply do not make sense, or could ever, ever help.
If Heart Internet would like to speak about the contents of this article, or require any further feedback, please get in touch. As someone who simply wanted to get a website live and as experienced some particularly bad support, I have a lot of feedback to give – and am happy to give it.