phacility/phabricator · error · ConduitException

ERR-UNKNOWN-TYPE

ERR-UNKNOWN-TYPE

Error message

ERR-UNKNOWN-TYPE

What it means

The feed.query Conduit method renders each feed story according to its 'view' parameter. The switch only handles 'html', 'html-summary', 'data', and 'text'; any other value reaches the default case and throws ConduitException('ERR-UNKNOWN-TYPE'). When 'view' is omitted it defaults to 'data', so this error only fires on an explicit bad value.

Source

Thrown at src/applications/feed/conduit/FeedQueryConduitAPIMethod.php:139

              'class' => $story_data->getStoryType(),
              'epoch' => $story_data->getEpoch(),
              'authorPHID' => $story_data->getAuthorPHID(),
              'chronologicalKey' => $story_data->getChronologicalKey(),
              'data' => $story_data->getStoryData(),
            );
          break;
          case 'text':
            $data = array(
              'class' => $story_data->getStoryType(),
              'epoch' => $story_data->getEpoch(),
              'authorPHID' => $story_data->getAuthorPHID(),
              'chronologicalKey' => $story_data->getChronologicalKey(),
              'objectPHID' => $story->getPrimaryObjectPHID(),
              'text' => $story->renderText(),
            );
          break;
          default:
            throw new ConduitException('ERR-UNKNOWN-TYPE');
        }

        $results[$story_data->getPHID()] = $data;
      }
    }

    return $results;
  }

}

View on GitHub (pinned to 5720a38cfe)

Solutions

  1. Set view to one of the documented values: 'data' (default), 'html', 'html-summary', or 'text'.
  2. Omit the view parameter entirely if you want the default 'data' rendering.
  3. Check the exact spelling: hyphen in 'html-summary', all lowercase.
  4. Read the method's error types via conduit.method.query for the authoritative list.

Example fix

// before
$result = $conduit->callMethodSynchronous(
  'feed.query',
  array('view' => 'json'));

// after
$result = $conduit->callMethodSynchronous(
  'feed.query',
  array('view' => 'data'));
Defensive patterns

Strategy: validation

Validate before calling

$valid_views = array('data', 'html', 'html-summary', 'text');
if (!in_array($view, $valid_views, true)) {
  $view = 'data'; // or reject the request
}

Prevention

When it happens

Trigger: Calling conduit feed.query with view set to anything besides 'data', 'html', 'html-summary', or 'text' — e.g. 'json', 'summary', 'Html' (case matters), or 'html_summary' (underscore vs hyphen).

Common situations: API clients guessing parameter values instead of reading defineParamTypes()/defineErrorTypes(); typos and case mismatches; scripts written against other feed APIs ported to Phabricator; passing an empty-but-present value that is falsy-checked differently.

Related errors


AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21). Data as JSON: /api/errors/d09160afd25405c8. Report an issue: GitHub.