The job is the same; its surroundings are not.

  • Site data is missing or different. It does not travel with an export: keys, URLs and recipient addresses must be set on each environment.
  • Record ids differ. A trigger or action aimed at id 12 on staging is aimed at a different record, or none, on production.
  • The schedule, site or published state did not travel.
  • The template files are not deployed. A Send mail or Render template that names a file under templates/hooks/ fails until the repository is deployed.
  • Email looked fine on staging because it was redirected. A non-production environment sends mail to the development address; on production it goes to the real recipients, and problems with addresses or deliverability appear there first.
  • The other system's production side behaves differently: stricter validation, rate limits, a different key. The HTTP request's response in the batch log says which.
  • The timezone differs, when staging belongs to a client whose timezone setting is not production's (often UTC against the client's own zone). Anything that writes or compares dates as text is off by the difference.

The move itself, with the checks in order: Move jobs from staging to production.