drupal_goto argument retrival
Query arguments are available in $_GET. Drupal doesn't handle those query arguments for your menu callback; the only query argument Drupal automatically handles is $_GET['q'], which is the path for the requested page.

By default, $_REQUEST contains the contents of $_GET, $_POST and $_COOKIE. Drupal uses $_GET for the requested page path, and I would rather use $_GET also in this case, just to avoid possible conflicts.

In your case, those query arguments are accessible with $_GET['nid'], and $_GET['sid'].

If you define the menu handler with code similar to the following one, then your menu callback gets those values as arguments.

function event_menu() {
  $items["event/registration/failed/%/%"] = array(
    // …
    'page callback' =&gt; '_event_registration_failed',
    'page arguments' =&gt; array(3, 4),
  );

  return $items;
}

function _event_registration_failed($nid, $sid) {
  // …
}


You could get the node object, instead of the node ID, if you use the following code.

function event_menu() {
  $items["event/registration/failed/%node/%"] = array(
    // …
    'page callback' =&gt; '_event_registration_failed',
    'page arguments' =&gt; array(3, 4),
  );

  return $items;
}

function _event_registration_failed($node, $sid) {
  // …
}