RFC 630 UNKNOWN FTP · EMAIL · ERROR CODES

FTP error code usage for more reliable mail service

How TENEX sites will use the existing FTP error codes so mail senders can tell permanent failures from temporary ones.

On rfc-editor.org ↗
PUBLISHED
April 1974
AUTHORS
J. Sussman
STREAM
Legacy
CODES COVERED
450 to 454
PERMANENT IN MAILERS
450 and 451
TEMPORARY IN MAILERS
452, 453 and 454
COMMANDS INVOLVED
MAIL and MLFL
DOI
10.17487/RFC0630

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                     Julie Sussman
RFC # 630                                                 BBN
NIC # 30237                                               April 10, 1974


          FTP Error Code Usage for More Reliable Mail Service


                                PURPOSE

    A major hindrance to providing reliable mail service is the lack of
well-defined FTP error replies that would enable a mailing process to
decide how to handle a failure.  New FTP error codes are currently in
the design stage, and a proposal will be announced soon.  In the
interim, we can get some improvement by simply defining how we intend to
use the current FTP codes.  The purpose of this RFC is to inform all
sites of how TENEX sites will use and interpret the codes starting in
the near future.


                        CURRENT CODE DEFINITIONS

    The FTP error codes defined for failure to perform a file action
(including mail) are:

450 File not found
451 File access denied to you
452 Data connection closed
453 Insufficient storage
454 Cannot connect to your data socket

450, 451, and 453 are applicable to both the MAIL and MLFL commands,
while 452 and 454 are only meaningful for MLFL.


                   SHORTCOMING OF CURRENT DEFINITIONS

    There are more possible causes of failure to deliver mail than the
ones defined above.  Implementors of FTP servers thus had to make
arbitrary assignments of error conditions to defined codes.  As a
result, although the text of the reply might distinguish these
conditions for the benefit of human users, the code doesn't distinguish
them for the benefit of processes.

    The minimum distinction needed by the TENEX mail-sending processes
is between permanent and non-permanent failures.  In the latter case,
the process will repeatedly try to deliver the mail for several days.

                     NEW DEFINITIONS FOR TENEX USE

    The following changes will be installed at TENEX sites over the next
couple of months.

FTP SERVER

    The TENEX FTP server will continue to use 452 and 454 as specified
for the MLFL command.

    For MAIL and MLFL, it will send the other codes as follows:

450 Permanent failures due to the user addressed in the Mail or MLFL
    command.

    Examples:  No such user; No mailbox for that user; Can't access file
    (because net users can't write in that mailbox).

451 Permanent failures due to the message itself.

    Example:  Line sent over TELNET connection is too long (MAIL command
    only).

453 Temporary failures

    Examples:  TELNET connection unexpectedly closed;  Mailbox busy;
    Unexpected local errors (such as failure to create scratch file).

MAILING PROCESSES

    TENEX mailing processes currently interpret all the codes 450-454 as
meaning permanent failure.  They will be changed to interpret 452, 453,
and 454 as temporary while leaving 450 and 451 permanent.


                   COMPATIBILITY WITH NON-TENEX SITES

    These interpretations should not adversely affect the interaction of
TENEX and non-TENEX mail processes, since we are simply changing from
one arbitrary set of interpretations to another.  Moreover:

--Our interpretation of 450-451 as permanent and 452-454 as temporary is
consistent with their original meanings.

--Our new choice of what codes to use for what failure is no farther
from the original meanings than our old choice was, and conveys more
information.

       [ This RFC was put into machine readable form for entry ]
       [ into the online RFC archives by Alex McKenzie with    ]
       [ support from GTE, formerly BBN Corp.            10/99 ]

AI ELI5

On this page
PROBLEMThe FTP error codes for failed file actions did not distinguish the many causes of a mail delivery failure, so a mailing process could not decide whether to give up or try again.
MECHANISMTENEX FTP servers will send 450 for permanent failures caused by the addressed user, 451 for permanent failures caused by the message, and 453 for temporary failures. Mailing processes will treat 450 and 451 as permanent and 452, 453 and 454 as temporary.
WHY IT MATTERSMail senders can keep retrying temporary failures for several days and stop at once on permanent ones. The RFC says new FTP error codes were still being designed.

§1The Problem With Mail Error Codes

RFC 630 is a short note from BBN about FTP error replies. The author says a major hindrance to reliable mail service is the lack of well-defined error replies that let a mailing process decide how to handle a failure.

New FTP error codes were still in the design stage. As an interim step, the RFC defines how TENEX sites intend to use the current codes, and informs all sites of it.

If a letter cannot be delivered, the post office should say whether to try again tomorrow or give up. This note is about making that answer clear.

§2The Existing Code Definitions

Five codes covered failure to perform a file action, including mail: 450 File not found, 451 File access denied to you, 452 Data connection closed, 453 Insufficient storage, and 454 Cannot connect to your data socket. Codes 450, 451 and 453 apply to both the MAIL and MLFL commands, while 452 and 454 only matter for MLFL.

There are more causes of mail failure than these five. Server implementors therefore made arbitrary assignments of conditions to codes. The reply text might tell a human what went wrong, but the code did not tell a process. The minimum distinction TENEX mail senders need is between permanent and non-permanent failures, because for the latter the process will try repeatedly for several days.

There were only five numbers for many kinds of trouble, so people guessed which number to use. A computer reading the number could not tell what really went wrong.

§3New TENEX Usage

The TENEX FTP server keeps using 452 and 454 as specified for MLFL. For MAIL and MLFL it sends the other codes this way: 450 for permanent failures due to the user addressed (no such user, no mailbox, or a mailbox net users cannot write in), 451 for permanent failures due to the message itself (for example a line over the TELNET connection that is too long, MAIL only), and 453 for temporary failures (TELNET connection unexpectedly closed, mailbox busy, unexpected local errors).

On the sending side, TENEX mailing processes then treated all of 450 to 454 as permanent. They will be changed to read 452, 453 and 454 as temporary and keep 450 and 451 permanent. The changes were to be installed over the next couple of months.

Now 450 means 'this person cannot get mail', 451 means 'this letter is broken', and 453 means 'busy, try later'. The sender stops or retries to match.

TENEX SERVER USE OF FTP CODES FOR MAIL (RFC 630)
  • 450Permanent, user — Permanent failure due to the user addressed, such as no such user or no mailbox.
  • 451Permanent, message — Permanent failure due to the message itself, such as an over-long line.
  • 453Temporary — Temporary failure, such as a busy mailbox or an unexpected local error.

§4Compatibility With Other Sites

The RFC argues that the change should not hurt mail exchanges between TENEX and non-TENEX sites, because it simply swaps one arbitrary set of interpretations for another. It gives two supporting points.

Reading 450 and 451 as permanent and 452 to 454 as temporary is consistent with their original meanings. And the new choice of codes is no further from the original meanings than the old one, while conveying more information.

Other computers will not be confused, because the new way is no more of a guess than the old way, and it tells them more.