Troubleshooting Code Error 80004005 – Unspecified Error
Think of error 80004005 as meaning the script could not access your data. The most likely reason is a permissions related problem. Your best chance of resolving this problem is to study carefully any associated message, for example, ‘File already in use’, or ‘Logon Failed’.
Introduction to Error Code 80004005
Error 80004005 is a general error for all manner of events. I have to confess that I am still trying to understand all the causes of this code number. One thread that runs through error 80004005 problems is permissions. Another thread is incorrect format, for example you entering a number instead of a string. This is particularly true of telephone or fax numbers.
My main interest is in VBScript errors, however, I have added database examples for completeness.
The first branch in your decision tree is this an ASP error or some other ODBC error.
Three types of 80004005 Error
What you see is WSH (Windows Script Host) message box. The script does not execute as you had hoped. Instead you get a message box like this picture:
VBScript / CScript
1) In this case, VBScript was trying to store a password. With error 80004005 there is usually an element of access denied. Insufficient rights, wrong permissions.
2) It can occur when a VBScript attempts to connect to scriptpw.dll. There are other causes, such as connecting to COM objects or ADO, or other database object.
3) Another thread is Number v String value format. If you are dealing with a phone number, make sure that you add it as string value and not as a pure number. Extra information supplied by Murda McLoud. ‘I worked out that had to convert the number to a string to stop the 80004005 error. Then the objUser.Put would work properly and save the data.’
Solutions for Error 80004005
This has been a very difficult error to track down. Possibly the error was due to using WScript instead of CScript.
Check the underlying database, for example, names, exclusive locks and especially permissions.
One additional problem that I had with Error 80004005 was due to a firewall blocking the relevant port, it was either 80 or 135.
Example 1: VBScript with Error 80004005
I have to admit this may not be terribly useful example for your specific problem, but then Code 80004005 is invariably a vague permission problem.
Dim strPassword, strValidPWord
WScript.Echo "Enter password to run script:"
If strPassword <> strValidPWord Then WScript.Quit
WScript.Echo "Hi Password"
SolarWinds’ Orion performance monitor will help you discover what’s happening on your network. This utility will also guide you through troubleshooting; the dashboard will indicate whether the root cause is a broken link, faulty equipment or resource overload.
What I like best is the way NPM suggests solutions to network problems. Its also has the ability to monitor the health of individual VMware virtual machines. If you are interested in troubleshooting, and creating network maps, then I recommend that you try NPM now.
Example 2: String v Number Problem
strTel = objExcel.Cells(intRow, 7).Value strFax = objExcel.Cells(intRow, 8).Value
objUser.Put "telephoneNumber", strTel
objUser.Put "facsimiletelephoneNumber", strFax
The solution is to make sure that the values in intRow 7 and intRow 8 are string values and not pure numbers.
Example 3: Connectivity Problems for Error 80004005
Firstly, the error 80004005 may be ‘by design’ in that the database has been locked by another process or user and therefore cannot accept a connection at this time.
Secondly, apply good troubleshooting tactics and pay close attention to the Line: number, also any Source: clues.
Examples of Connectivity related problems
There is no server on port 80 at ‘BigServer’. (Error code = 80004005)
‘Geronimo’ is not a valid host name or IP address. (Error code = 80004005)
Microsoft OLE DB Provider for ODBC Drivers error ‘80004005’
SQL Permissions Problem
Step Error code: 80004005
Step Error Help File:DTSFFile.hlp
Step Error Help Context ID:0
Causes of Connectivity related Problems
As with all 80004005, I would start with permissions. You may get a good clue such as ‘Login Failed’ or [ODBC Microsoft SQL Driver] Logon Failed().
When a database is on a different server from the Web server. Sometimes the problem is using a UNC path to reference a database. One nasty problem with UNC paths is that even if the database is on the same computer as the Web server, the Web server assumes that the database resides on a different computer.
Permissions and Temporary Files Error 80004005
Double check the permissions on the file and the folder. In particular ensure that your account can create and/or destroy any temporary files. Temporary files are usually created in the same folder as the database, but the file may also be created in other folders
I like thePermissions Monitor because it enables me to see quickly WHO has permissions to do WHAT. When you launch this tool it analyzes a users effective NTFS permissions for a specific file or folder, takes into account network share access, then displays the results in a nifty desktop dashboard!
Think of all the frustration that this free utility saves when you are troubleshooting authorization problems for users access to a resource. Give this permissions monitor a try – it’s free!
Error 80004005 Symptoms With Data Access Components
MTS – Microsoft Transaction Server
You are trying to pass and ADO Recordset from COM to ASP. When passing a disconnected ActiveX Date Objects (ADO) Recordset from a Component Object Model (COM) component inside a Microsoft Transaction Server (MTS) Server Package/COM+ Application to Active Server Pages (ASP), you may receive one of the following error messages:
/xxx.asp, line x
When trying to pass values of the types, such as strings (BSTR), you must declare those field types explicitly instead of using adVariant.
rs.Fields.Append "ID", adVariant ‘this works since it is an Integer
rs.Fields.Append "fname", adVarChar, 50
rs.Fields.Append "lname", adVarChar, 50
Another Example of a Code 80004005 Error
Sub SetDepartment(objUser, strDepartment)
If IsNull(strDepartment) then
objUser.Put "department", ""
objUser.Put "department", strCompany ‘TYPO!
Kindly sent in by Simon T.
Windows Management Instrumentation (WMI) is one of the hidden treasures of Microsoft operating systems. Fortunately, SolarWinds have created the WMI Monitor so that you can examine these gems of performance information for free. Take the guess work out of which WMI counters to use for applications like Microsoft Active Directory, SQL or Exchange Server.
Do you need additional help?
- For interpreting the WSH messages check Diagnose 800 errors.
- For general advice try my 7 Troubleshooting techniques.
- See master list of 0800 errors.
- Codes beginning 08004…
- Codes beginning 08005…
- Codes beginning 08007…
- Codes beginning 0800A…
Give something back?
Would you like to help others? If you have a good example of this error, then please email me, I will publish it with a credit to you:
If you like this page then please share it with your friends