> ## Documentation Index
> Fetch the complete documentation index at: https://help.pipelime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Leads troubleshooting

> Symptom-first fixes for a dead-end button, an emailed export, a list that stops updating, a company that stops producing leads and a missing score.

export const UiPath = ({children}) => {
  const parts = String(children).split(/\s*(?:→|>)\s*/).filter(Boolean);
  return <span className="pl-path">
      {parts.map((part, index) => <span key={`${index}-${part}`}>
          {index > 0 && <span className="pl-path__sep">→</span>}
          {part}
        </span>)}
    </span>;
};

export const Screenshot = ({id, alt, caption, frame = 'browser', url, marks = [], lang = 'en', workspace = 'northwind-outbound'}) => {
  const src = `/images/screenshots/${lang}/${id}.png`;
  const chrome = url ? `app.pipelime.ai/${workspace}${url}` : 'app.pipelime.ai';
  return <figure className={`pl-shot pl-shot--${frame} not-prose`}>
      <div className="pl-shot__frame">
        {frame !== 'bare' && <div className="pl-shot__bar">
            <span className="pl-shot__dots">
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
            </span>
            <span className="pl-shot__url">{chrome}</span>
          </div>}
        <div className="pl-shot__media">
          <img src={src} alt={alt} loading="lazy" />
          {marks.map(mark => <span key={mark.n} className="pl-shot__mark" style={{
    left: `${mark.x}%`,
    top: `${mark.y}%`
  }} aria-hidden="true">
              {mark.n}
            </span>)}
        </div>
      </div>
      {caption && <figcaption className="pl-shot__caption">{caption}</figcaption>}
    </figure>;
};

Six things send someone to this page: a **Create Lead Generation** button that goes nowhere, an export that never seems to arrive, a Prospects list that has stopped updating itself, a company that quietly stops producing new leads, a lead that closes itself with no warning, and a lead with no match score next to its name. Each has a specific, checkable cause.

<div className="pl-availability">
  <div className="pl-availability__row">
    <div className="pl-availability__label">Where</div>
    <div className="pl-availability__value"><span className="pl-path">Leads<span className="pl-path__sep">→</span>Prospects</span></div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">Your role needs</div>
    <div className="pl-availability__value">Read access to Prospects <code>read-leads</code>. Admin, Member and Viewer have it by default.</div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">To create or change</div>
    <div className="pl-availability__value"><code>create-leads</code> to add one, <code>update-leads</code> to change one, on top of the permission above.</div>
  </div>

  <div className="pl-availability__note">If you cannot find this in your sidebar, your workspace may have a custom menu configuration. Contact support and we will check it for you.</div>
</div>

## "Create Lead Generation" opens a blank page

An empty Prospects list has more than one screen. While a lead source in this workspace is still searching, an empty list shows **No leads found** and, if your role can create lead sources, a **Create Lead Generation** button. The **Add** panel offers the same destination: below its four ways of adding leads directly sits a separated fifth option, **Lead generation**, for setting up an automated search instead. Both send you to the same address, and the app defines no screen there.

Nothing catches the miss. There is no catch-all route, and the sidebar and the header are themselves part of whichever route matched, so an address that matches nothing renders nothing. You land on a blank page.

<Note>
  It looks like the app has crashed. It has not. Go back in your browser. That button is the only broken thing here: **Add** and **Import** open their own screens normally.
</Note>

The Companies list's own empty state offers the identical **Create Lead Generation** button, with the identical result.

## Export says the file is on its way, and nothing downloads

**Export**, on the Prospects list, opens a date range picker rather than a file. The picker says what will happen before you pick anything: **We'll email you the file**, and a line saying exports are prepared in the background and can take a few minutes to arrive. Its submit button reads **Export all** while the range is still **All time**, and **Export** once you narrow it. Either one starts the background job, and the confirmation that follows repeats the same promise.

No range produces a download link on this screen. If nothing has arrived after a few minutes, check your email, including spam, rather than your browser's downloads.

## The Prospects list is not picking up new leads

The list only rechecks itself in the background while a lead source in this workspace is actively searching. While that is true, new leads show up on their own, and a notification tells you how many were found.

The moment nothing is actively searching, the list is static. That is the normal state once a lead source has finished, and it is the only state for leads that arrived by CSV import, by a manual add, or through another channel. Nothing brings a new row onto the screen by itself from there. Changing a filter, changing page, and the **Refresh** button in the list header all refetch it.

## A company stops producing new leads, with nothing obvious explaining why

We search a company's candidate leads for email addresses one by one. After three of them fail verification in a row, we stop searching the rest of that company's roster: each remaining candidate is marked an error and costs no credit, rather than repeating a search likely to keep failing. One address from that same company coming back confirmed good clears the count immediately. Otherwise the count clears on its own a week after the streak's first failure.

If that company came in on a company CSV import that had decision-maker search turned on, one screen carries a number this feeds. Open <UiPath>Leads → Companies</UiPath>, choose **View Imports**, then open an import: it lands straight on that import's **Overview** tab. The **Decision-makers** section there counts every lead in the import that ended in an error, under the label **Email not found**, alongside **Leads found** and **With verified email**.

The reason itself is written onto each skipped lead, and no screen prints it back to you. The visible signs are that count climbing, and a company that stops producing new leads. If a company keeps failing, [discarding it](/en/leads/companies-and-match-score) is the practical next step rather than waiting it out.

<Screenshot id="leads/troubleshooting--email-not-found-chip" url="/leads/companies" alt="An import's Overview tab, its Decision-makers section showing the Email not found stat card next to Leads found and With verified email" caption="This count is the closest thing to a label the app gives this cutoff, and it counts the whole import, not one company." />

## A lead closes itself just before an email goes out

Right before a campaign email goes out, whether it is the first one, a follow-up or a reply, we can re-check the address it is about to send to: one that has not been recently confirmed good, on a lead that has never sent a genuine reply on any channel. If that check comes back bad, the lead closes immediately, with the same status message and the same next-employee handling as a bounce.

This is only one of several reasons a lead can close on its own. See [Email address is invalid or no longer exists](/en/troubleshooting/lead-closed-by-itself) for the rest: bounces, running out of follow-ups, and opt-outs.

## A lead has no Decision-maker match score

The small coloured pill after a lead's job title on the Prospects list is an automatic decision-maker match out of 100. One thing writes it: the screening that runs when we build a company's roster ourselves and pick who to enrich. That happens for a lead source's companies, for the companies a website visit brings in, and for a company CSV import that had decision-maker search turned on.

A lead that arrives any other way, added by hand, pasted in, brought in on a CSV of leads, or saved from a search of our lead database, never goes through that screening. Nothing was ever calculated, so nothing renders in its place. It is not hidden; the number does not exist.

Inside a roster the screening did work through, a candidate it passed over carries a small wand icon next to the name instead, and no score at all rather than a zero. A missing number is expected, not a bug. The Companies list has its own, unrelated score, one per company rather than per lead; see [Companies list, match score and discards](/en/leads/companies-and-match-score) if that is the number you are missing instead.

## Related

<CardGroup cols={2}>
  <Card title="Email address is invalid or no longer exists" icon="mail-warning" href="/en/troubleshooting/lead-closed-by-itself">
    Every reason a lead can close on its own: a bounce, a pre-send re-verification, the follow-up ceiling, or an opt-out.
  </Card>

  <Card title="Email verification was inconclusive" icon="shield-question-mark" href="/en/troubleshooting/email-verification-inconclusive">
    Why the Verify button keeps coming back, and what a catch-all domain means for an address that stays unverified.
  </Card>

  <Card title="Import companies from a CSV" icon="upload" href="/en/leads/import-companies-csv">
    The five-step company import, its batch schedule, and the Company Imports monitor this page's cutoff feeds.
  </Card>

  <Card title="Verify an email address" icon="check-check" href="/en/leads/verify-an-email-address">
    Verifying one address by hand, and the three words a result ever comes back as.
  </Card>
</CardGroup>
