Error fixQAD Enterprise Applications (QAD Adaptive ERP)System Administration - Progress AppServer Connectivity

QAD Says "Unable to Connect to the Application Server": How to Fix It

Error
QAD unable to connect to the application server

Also searched as

  • QAD .NET UI cannot connect to appserver
  • QAD Enterprise Applications connection to server failed
  • QAD Progress AppServer broker will not start
  • QAD login fails cannot reach server

Short answer

This error almost always means the Progress OpenEdge AppServer broker behind QAD is stopped, unreachable over the network, or out of licensed connections, not a database problem. Confirm the broker process is running and healthy in OpenEdge Explorer, check the port and firewall path from the client, then restart the broker with clean agent settings.

Applies to: QAD Enterprise Applications (MFG/PRO) 2015 EE through QAD Adaptive ERP, using the QAD .NET UI, QAD Desktop client, or QAD Web UI connecting to a Progress OpenEdge AppServer.

Diagnose and fix the AppServer connection

  1. 1On the application server, open OpenEdge Explorer or Progress Explorer and confirm the QAD AppServer broker (for example, qadapp or the broker name configured for your instance) shows a status of Running.
  2. 2If the broker is stopped, start it from OpenEdge Explorer rather than restarting the whole server, and watch for errors in the broker startup log.
  3. 3Open the broker's .log file (under the working directory set on the broker's Properties tab) and look for lines showing agent startup failures, database connect failures, or propath errors.
  4. 4From the client machine, confirm you can reach the broker's host and port with a simple network test (telnet or Test-NetConnection on Windows); a blocked port after a firewall change is one of the most common causes.
  5. 5If you use a Progress NameServer (nsman) for name-based connections, confirm the NameServer process is running and that the broker registered with it - a broker running but not registered will still fail client lookups.
  6. 6Check the number of active AppServer agents against the broker's configured Maximum Clients Per Agent and Maximum Agents; if every agent is busy or the licensed user count is exceeded, new connections are refused.
  7. 7If the broker log shows an agent crashing immediately on startup, especially right after a patch or code push, recompile the QAD .r code for that AppServer's PROPATH and restart the broker.
  8. 8Verify the connection string in the QAD .NET UI client profile or web.config points to the correct host, port, and service name, not a decommissioned or renamed server.
  9. 9After making a change, restart the broker cleanly (stop, confirm the port is released, then start) rather than layering a second broker instance on the same port.

Why the error points at the broker, not the database

QAD's .NET UI and Web UI do not talk to the Progress database directly. They call a Progress OpenEdge AppServer broker, which hands the request to an agent process that runs the compiled QAD business logic (.r code) and then queries the database on the agent's behalf. When a user sees "unable to connect to the application server," the failure happened before the database was ever reached - at the broker or the network path to it.

This is why restarting the database server rarely fixes this specific error. The database can be perfectly healthy while the broker service is stopped, out of agents, or unreachable because of a firewall rule, a changed IP address after a server move, or a certificate issue on an encrypted connection.

Reading the broker log

The broker's log file, set under the broker's working directory in OpenEdge Explorer, is the fastest way to tell what actually failed. A line referencing the database connection parameters usually means the broker itself cannot reach the QAD database (wrong -db, -H, or -S startup parameters). A line referencing an agent failing to initialize, especially citing a specific .r file or PROPATH entry, points to a code or compile problem rather than networking.

Agent crash-on-startup after a patch is a recurring pattern: a partial code push leaves stale or missing .r files, the agent fails its first request, and the broker marks it unusable, which quickly drains the pool and produces connection failures for every new user.

OpenEdge Explorer > AppServer > <broker name> > Log tab
OpenEdge Explorer > AppServer > <broker name> > Properties > Startup Parameters

Licensing and agent pool exhaustion

QAD and Progress OpenEdge licensing caps the number of concurrent connections. If the broker's Maximum Agents and Maximum Clients Per Agent settings are undersized for your active user count, or if a batch job or integration left sessions open without releasing them, legitimate users get refused with the same generic connection error a hard outage would produce.

Check active agent and client counts in OpenEdge Explorer against the licensed count before assuming the broker configuration is wrong; sometimes the fix is simply killing orphaned sessions rather than changing settings.

Network path and firewall changes

Because the AppServer listens on a specific TCP port (and, if you use a NameServer, a second port for name lookups), any firewall rule change, VPN reconfiguration, or move to a new subnet can silently break client connectivity while leaving the broker itself perfectly healthy. This is common after a server migration or a security team tightening outbound rules.

Test connectivity from the actual client machine, not just from the server, since server-to-server access can work while client-to-server access is blocked.

Common pitfalls

  • !Restarting the whole application server instead of just the affected broker, which causes unnecessary downtime for unrelated services.
  • !Assuming the database is down because the error message is generic, and skipping the broker log entirely.
  • !Increasing Maximum Agents without checking the actual licensed user count, which just moves the failure to a licensing violation later.
  • !Not recompiling .r code after a patch, so the broker keeps spawning agents that immediately crash on the same missing module.
  • !Forgetting the NameServer when troubleshooting name-based connections, and only checking the broker.
  • !Changing the client connection string on one machine to confirm a fix, then not rolling the change out to the rest of the user base.

How an ERP-grounded AI assistant handles this

When an AppServer connection issue like this comes in as a support ticket, ERPray can be grounded on the broker logs, prior incident notes, and the QAD environment documentation so it can point a support engineer straight at the specific broker, the relevant log lines, and the last configuration change that lines up with the outage, instead of the team re-walking the broker versus database versus network checklist from scratch each time.

Frequently asked questions

Does this error always mean the AppServer broker is down?

No. The broker can be running but still refuse connections if it is out of licensed agent slots, if the NameServer it registers with is down, or if a firewall change blocked the client's path to the broker's port. Check the broker log first to narrow it down.

Why did this start happening right after a QAD patch?

Patches that update .r code without a full recompile and clean broker restart can leave agents crashing on startup. Recompile the affected code for the broker's PROPATH and restart the broker rather than just the client.

Can too many idle user sessions cause this error?

Yes. Sessions left open by an integration, a crashed client, or a batch job still count against the broker's agent and license limits. Review active sessions in OpenEdge Explorer and clear orphaned ones before increasing capacity.

Is the fix different for QAD Web UI versus the .NET UI?

The underlying broker troubleshooting is the same either way, since both go through the same AppServer layer. The difference is where the connection string lives - a client profile for the .NET UI versus a web.config or environment setting for the Web UI.

Related

How-to

How to Close a Job in JobBOSS2

A job in JobBOSS2 will not close cleanly until every routing operation is marked complete, all material has been issued or returned, and all labor and cost transactions are posted. Review the job's Work In Process detail first, clear any open items, then change the job status to Complete and run final job costing before it is locked.

How-to

How to Create a Quote in E2 Shop System

A quote in E2 Shop System starts with a header identifying the customer and part, then adds routing operations with time and rate, material and outside processing costs, and a markup to reach a sell price. Once accepted, the quote converts directly into a job or sales order so the estimate carries forward as the job's cost basis.

How-to

How to Set Up an EDI Trading Partner in Plex Systems

Setting up an EDI trading partner in Plex's EDI Data Manager means defining the partner and their connection details, mapping the specific document types they will exchange (purchase orders, forecasts, shipping schedules, ASNs, invoices) to Plex's Customer and Part records, and running the partner through test mode before flipping them to production.

How-to

How to Run Live Scheduling in Global Shop Solutions

Live Scheduling in Global Shop Solutions builds a finite-capacity schedule from job routing operations against defined work centers, then presents it as a drag-and-drop board that shop supervisors adjust to reflect real shop floor priorities. Its accuracy depends on work centers, standard hours, and shop floor data collection all being kept current, since the schedule is only as good as the routing and capacity data feeding it.

How-to

How to Create a Generic Inquiry in Acumatica

Generic Inquiries (GI) are Acumatica's no-code query builder for joining tables, adding filters, and exposing the result as an inquiry screen, dashboard data source, or API endpoint. Open System > Customization > Generic Inquiry, add your base table, define joins and conditions, then run and save. No SQL or customization project is required.

Error fix

Fix Odoo AccessError: You Are Not Allowed to Access Records

Odoo raises AccessError when a user's security groups do not grant a CRUD right on a model through ir.model.access.csv, or when an ir.rule record rule filters the specific record out for that user or company. Fix it by adding the user to the group named in the error, editing the model's access rights, or reviewing the record rule's domain under Settings > Technical > Security.

AI for ERP

AI for QAD Adaptive ERP in automotive and industrial manufacturing

Add AI to QAD Adaptive ERP or Enterprise Edition for automotive and industrial manufacturing, grounded on QXtend and QAD's API layer, on-prem or private cloud.

Stuck on QAD Enterprise Applications (QAD Adaptive ERP)?

Talk to engineers who work inside QAD Enterprise Applications (QAD Adaptive ERP) every week, and who build private AI that answers these questions from your own ERP data.