anchor.diff:  		{ok, #offer{char_value_use = CharValue}}) ->
   	process_request1(Address, Port, DiameterCaps, Request,
   			lists:keyfind("policyTable", #char_value_use.name, CharValue));
  -process_request(_Address, _Port, _DiameterCaps, _Request, {error, Reason}) ->
  -	{error, Reason}.
  +process_request(_Address, _Port, #diameter_caps{origin_host = {OHost, _DHost},
  +		origin_realm = {ORealm, _DRealm}},
  +		#'3gpp_gx_CCR'{'Session-Id' = SId,
  +            'CC-Request-Type' = RequestType,
  +            'CC-Request-Number' = RequestNum} = Request, {error, Reason}) ->
  +	error_logger:warning_report(["Unable to process DIAMETER request",
  +			{origin_host, OHost}, {origin_realm, ORealm},
  +			{request, Request}, {error, Reason}, {stack, erlang:get_stacktrace()}]),
  +	diameter_error(SId, ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY',
  +			OHost, ORealm, RequestType, RequestNum).
   %% @hidden
   process_request1(Address, Port, DiameterCaps, Request,
   		#char_value_use{name = "policyTable",
   		values = [#char_value{value = PolicyTable}]}) ->
   	process_request2(Address, Port, DiameterCaps, Request,
   			ocs:query_resource(start, '_', '_', '_', {exact, PolicyTable}));
  -process_request1(_Address, _Port, _DiameterCaps, _Request, false) ->
  -	throw(policy_not_found).
  +process_request1(_Address, _Port, #diameter_caps{origin_host = {OHost, _DHost},
  +		origin_realm = {ORealm, _DRealm}} = _DiameterCaps,
  +		#'3gpp_gx_CCR'{'Session-Id' = SId,
  +				'Auth-Application-Id' = ?Gx_APPLICATION_ID,
  +				'CC-Request-Type' = RequestType,
  +				'CC-Request-Number' = RequestNum} = Request, false) ->
  +	error_logger:warning_report(["Unable to process DIAMETER request",
  +			{origin_host, OHost}, {origin_realm, ORealm},
  +			{session_id, SId}, {request, Request}, {error, policy_not_found}]),
  +	diameter_error(SId, ?'DIAMETER_BASE_RESULT-CODE_UNABLE_TO_COMPLY',
  +			OHost, ORealm, RequestType, RequestNum).
  +
   %% @hidden
   process_request2(_Address, _Port, #diameter_caps{origin_host = {OHost, _DHost},
   		origin_realm = {ORealm, _DRealm}} = _DiameterCaps,
  
positive.code: 					{error, missing_subscription_id}]),
  			diameter_error(SId, ?'DIAMETER_ERROR_INITIAL_PARAMETERS',
  					OHost, ORealm, RequestType, RequestNum);
  process_request(Address, Port, DiameterCaps, #'3gpp_gx_CCR'{
  		'Subscription-Id' = [#'3gpp_gx_Subscription-Id'{
  		'Subscription-Id-Data' = Subscriber} | _]} = Request) ->
  	process_request(Address, Port, DiameterCaps, Request,
  			ocs:find_service(Subscriber)).
  %% @hidden
  process_request(Address, Port, DiameterCaps, Request,
  		{ok, #service{product = ProductRef}}) ->
  	process_request(Address, Port, DiameterCaps, Request,
  			ocs:find_product(ProductRef));
  process_request(Address, Port, DiameterCaps, Request,
  		{ok, #product{product = OfferId}}) ->
  	process_request(Address, Port, DiameterCaps, Request,
  
negative.code: 		Discard :: {discard, Reason} | discard,
  		Reason :: term(),
  		PostF :: diameter:evaluable().
  %% @doc Invoked to return a request for encoding and transport
  prepare_request(#diameter_packet{} = Packet, _ServiceName, _Peer) ->
  	{send, Packet}.
  
  