JSON::ParserError in Lti::LaunchesController#show

767: unexpected token at '<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Action Controller: Exception caught</title> <style> body { background-color: #FAFAFA; color: #333; margin: 0px; } body, p, ol, ul, td { font-family: helvetica, verdana, arial, sans-serif; font-size: 13px; line-height: 18px; } pre { font-size: 11px; white-space: pre-wrap; } pre.box { border: 1px solid #EEE; padding: 10px; margin: 0px; width: 958px; } header { color: #F0F0F0; background: #C52F24; padding: 0.5em 1.5em; } h1 { margin: 0.2em 0; line-height: 1.1em; font-size: 2em; } h2 { color: #C52F24; line-height: 25px; } .details { border: 1px solid #D0D0D0; border-radius: 4px; margin: 1em 0px; display: block; width: 978px; } .summary { padding: 8px 15px; border-bottom: 1px solid #D0D0D0; display: block; } .details pre { margin: 5px; border: none; } #container { box-sizing: border-box; width: 100%; padding: 0 1.5em; } .source * { margin: 0px; padding: 0px; } .source { border: 1px solid #D9D9D9; background: #ECECEC; width: 978px; } .source pre { padding: 10px 0px; border: none; } .source .data { font-size: 80%; overflow: auto; background-color: #FFF; } .info { padding: 0.5em; } .source .data .line_numbers { background-color: #ECECEC; color: #AAA; padding: 1em .5em; border-right: 1px solid #DDD; text-align: right; } .line { padding-left: 10px; white-space: pre; } .line:hover { background-color: #F6F6F6; } .line.active { background-color: #FFCCCC; } .hidden { display: none; } a { color: #980905; } a:visited { color: #666; } a.trace-frames { color: #666; } a:hover { color: #C52F24; } a.trace-frames.selected { color: #C52F24 } </style> <script> var toggle = function(id) { var s = document.getElementById(id).style; s.display = s.display == 'none' ? 'block' : 'none'; return false; } var show = function(id) { document.getElementById(id).style.display = 'block'; } var hide = function(id) { document.getElementById(id).style.display = 'none'; } var toggleTrace = function() { return toggle('blame_trace'); } var toggleSessionDump = function() { return toggle('session_dump'); } var toggleEnvDump = function() { return toggle('env_dump'); } </script> </head> <body> <header> <h1> ActiveRecord::RecordNotFound in AccessTokensController#create </h1> </header> <div id="container"> <h2>Couldn&#39;t find Platform with &#39;id&#39;=2013</h2> <div class="source hidden" id="frame-source-0"> <div class="info"> Extracted source (around line <strong>#177</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>175</span> <span>176</span> <span>177</span> <span>178</span> <span>179</span> <span>180</span> </pre> </td> <td width="100%"> <pre> <div class="line"> record = statement.execute([id], connection).first </div><div class="line"> unless record </div><div class="line active"> raise RecordNotFound.new(&quot;Couldn&#39;t find #{name} with &#39;#{primary_key}&#39;=#{id}&quot;, </div><div class="line"> name, primary_key, id) </div><div class="line"> end </div><div class="line"> record </div> </pre> </td> </tr> </table> </div> </div> <div class="source " id="frame-source-1"> <div class="info"> Extracted source (around line <strong>#21</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>19</span> <span>20</span> <span>21</span> <span>22</span> <span>23</span> <span>24</span> </pre> </td> <td width="100%"> <pre> <div class="line"> private </div><div class="line"> def set_platform </div><div class="line active"> @platform = Platform.find(params[:platform_id]) </div><div class="line"> end </div><div class="line"> </div><div class="line"> # Never trust parameters from the scary internet, only allow the white list through. </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-2"> <div class="info"> Extracted source (around line <strong>#426</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>424</span> <span>425</span> <span>426</span> <span>427</span> <span>428</span> <span>429</span> </pre> </td> <td width="100%"> <pre> <div class="line"> lambda do |target, value, &amp;block| </div><div class="line"> target, block, method, *arguments = expand(target, value, block) </div><div class="line active"> target.send(method, *arguments, &amp;block) </div><div class="line"> end </div><div class="line"> end </div><div class="line"> </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-3"> <div class="info"> Extracted source (around line <strong>#198</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>196</span> <span>197</span> <span>198</span> <span>199</span> <span>200</span> <span>201</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> unless halted </div><div class="line active"> result_lambda = -&gt; { user_callback.call target, value } </div><div class="line"> env.halted = halted_lambda.call(target, result_lambda) </div><div class="line"> </div><div class="line"> if env.halted </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-4"> <div class="info"> Extracted source (around line <strong>#34</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>32</span> <span>33</span> <span>34</span> <span>35</span> <span>36</span> <span>37</span> </pre> </td> <td width="100%"> <pre> <div class="line"> included do </div><div class="line"> define_callbacks :process_action, </div><div class="line active"> terminator: -&gt;(controller, result_lambda) { result_lambda.call; controller.performed? }, </div><div class="line"> skip_after_callbacks_if_terminated: true </div><div class="line"> end </div><div class="line"> </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-5"> <div class="info"> Extracted source (around line <strong>#199</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>197</span> <span>198</span> <span>199</span> <span>200</span> <span>201</span> <span>202</span> </pre> </td> <td width="100%"> <pre> <div class="line"> unless halted </div><div class="line"> result_lambda = -&gt; { user_callback.call target, value } </div><div class="line active"> env.halted = halted_lambda.call(target, result_lambda) </div><div class="line"> </div><div class="line"> if env.halted </div><div class="line"> target.send :halted_callback_hook, filter </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-6"> <div class="info"> Extracted source (around line <strong>#513</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>511</span> <span>512</span> <span>513</span> <span>514</span> <span>515</span> <span>516</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def invoke_before(arg) </div><div class="line active"> @before.each { |b| b.call(arg) } </div><div class="line"> end </div><div class="line"> </div><div class="line"> def invoke_after(arg) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-7"> <div class="info"> Extracted source (around line <strong>#513</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>511</span> <span>512</span> <span>513</span> <span>514</span> <span>515</span> <span>516</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def invoke_before(arg) </div><div class="line active"> @before.each { |b| b.call(arg) } </div><div class="line"> end </div><div class="line"> </div><div class="line"> def invoke_after(arg) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-8"> <div class="info"> Extracted source (around line <strong>#513</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>511</span> <span>512</span> <span>513</span> <span>514</span> <span>515</span> <span>516</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def invoke_before(arg) </div><div class="line active"> @before.each { |b| b.call(arg) } </div><div class="line"> end </div><div class="line"> </div><div class="line"> def invoke_after(arg) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-9"> <div class="info"> Extracted source (around line <strong>#131</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>129</span> <span>130</span> <span>131</span> <span>132</span> <span>133</span> <span>134</span> </pre> </td> <td width="100%"> <pre> <div class="line"> # Common case: no &#39;around&#39; callbacks defined </div><div class="line"> if next_sequence.final? </div><div class="line active"> next_sequence.invoke_before(env) </div><div class="line"> env.value = !env.halted &amp;&amp; (!block_given? || yield) </div><div class="line"> next_sequence.invoke_after(env) </div><div class="line"> env.value </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-10"> <div class="info"> Extracted source (around line <strong>#41</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>39</span> <span>40</span> <span>41</span> <span>42</span> <span>43</span> <span>44</span> </pre> </td> <td width="100%"> <pre> <div class="line"> # &lt;tt&gt;process_action&lt;/tt&gt; callbacks around the normal behavior. </div><div class="line"> def process_action(*args) </div><div class="line active"> run_callbacks(:process_action) do </div><div class="line"> super </div><div class="line"> end </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-11"> <div class="info"> Extracted source (around line <strong>#22</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>20</span> <span>21</span> <span>22</span> <span>23</span> <span>24</span> <span>25</span> </pre> </td> <td width="100%"> <pre> <div class="line"> private </div><div class="line"> def process_action(*args) </div><div class="line active"> super </div><div class="line"> rescue Exception =&gt; exception </div><div class="line"> request.env[&quot;action_dispatch.show_detailed_exceptions&quot;] ||= show_detailed_exceptions? </div><div class="line"> rescue_with_handler(exception) || raise </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-12"> <div class="info"> Extracted source (around line <strong>#34</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>32</span> <span>33</span> <span>34</span> <span>35</span> <span>36</span> <span>37</span> </pre> </td> <td width="100%"> <pre> <div class="line"> ActiveSupport::Notifications.instrument(&quot;process_action.action_controller&quot;, raw_payload) do |payload| </div><div class="line"> begin </div><div class="line active"> result = super </div><div class="line"> payload[:status] = response.status </div><div class="line"> result </div><div class="line"> ensure </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-13"> <div class="info"> Extracted source (around line <strong>#168</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>166</span> <span>167</span> <span>168</span> <span>169</span> <span>170</span> <span>171</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def instrument(name, payload = {}) </div><div class="line"> if notifier.listening?(name) </div><div class="line active"> instrumenter.instrument(name, payload) { yield payload if block_given? } </div><div class="line"> else </div><div class="line"> yield payload if block_given? </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-14"> <div class="info"> Extracted source (around line <strong>#23</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>21</span> <span>22</span> <span>23</span> <span>24</span> <span>25</span> <span>26</span> </pre> </td> <td width="100%"> <pre> <div class="line"> listeners_state = start name, payload </div><div class="line"> begin </div><div class="line active"> yield payload </div><div class="line"> rescue Exception =&gt; e </div><div class="line"> payload[:exception] = [e.class.name, e.message] </div><div class="line"> payload[:exception_object] = e </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-15"> <div class="info"> Extracted source (around line <strong>#168</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>166</span> <span>167</span> <span>168</span> <span>169</span> <span>170</span> <span>171</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def instrument(name, payload = {}) </div><div class="line"> if notifier.listening?(name) </div><div class="line active"> instrumenter.instrument(name, payload) { yield payload if block_given? } </div><div class="line"> else </div><div class="line"> yield payload if block_given? </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-16"> <div class="info"> Extracted source (around line <strong>#32</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>30</span> <span>31</span> <span>32</span> <span>33</span> <span>34</span> <span>35</span> </pre> </td> <td width="100%"> <pre> <div class="line"> ActiveSupport::Notifications.instrument(&quot;start_processing.action_controller&quot;, raw_payload.dup) </div><div class="line"> </div><div class="line active"> ActiveSupport::Notifications.instrument(&quot;process_action.action_controller&quot;, raw_payload) do |payload| </div><div class="line"> begin </div><div class="line"> result = super </div><div class="line"> payload[:status] = response.status </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-17"> <div class="info"> Extracted source (around line <strong>#256</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>254</span> <span>255</span> <span>256</span> <span>257</span> <span>258</span> <span>259</span> </pre> </td> <td width="100%"> <pre> <div class="line"> request.filtered_parameters.merge! wrapped_filtered_hash </div><div class="line"> end </div><div class="line active"> super </div><div class="line"> end </div><div class="line"> </div><div class="line"> private </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-18"> <div class="info"> Extracted source (around line <strong>#24</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>22</span> <span>23</span> <span>24</span> <span>25</span> <span>26</span> <span>27</span> </pre> </td> <td width="100%"> <pre> <div class="line"> # and it won&#39;t be cleaned up by the method below. </div><div class="line"> ActiveRecord::LogSubscriber.reset_runtime </div><div class="line active"> super </div><div class="line"> end </div><div class="line"> </div><div class="line"> def cleanup_view_runtime </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-19"> <div class="info"> Extracted source (around line <strong>#134</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>132</span> <span>133</span> <span>134</span> <span>135</span> <span>136</span> <span>137</span> </pre> </td> <td width="100%"> <pre> <div class="line"> @_response_body = nil </div><div class="line"> </div><div class="line active"> process_action(action_name, *args) </div><div class="line"> end </div><div class="line"> </div><div class="line"> # Delegates to the class&#39; ::controller_path </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-20"> <div class="info"> Extracted source (around line <strong>#32</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>30</span> <span>31</span> <span>32</span> <span>33</span> <span>34</span> <span>35</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def process(*) #:nodoc: </div><div class="line"> old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context) </div><div class="line active"> super </div><div class="line"> ensure </div><div class="line"> I18n.config = old_config </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-21"> <div class="info"> Extracted source (around line <strong>#191</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>189</span> <span>190</span> <span>191</span> <span>192</span> <span>193</span> <span>194</span> </pre> </td> <td width="100%"> <pre> <div class="line"> set_request!(request) </div><div class="line"> set_response!(response) </div><div class="line active"> process(name) </div><div class="line"> request.commit_flash </div><div class="line"> to_a </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-22"> <div class="info"> Extracted source (around line <strong>#252</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>250</span> <span>251</span> <span>252</span> <span>253</span> <span>254</span> <span>255</span> </pre> </td> <td width="100%"> <pre> <div class="line"> middleware_stack.build(name) { |env| new.dispatch(name, req, res) }.call req.env </div><div class="line"> else </div><div class="line active"> new.dispatch(name, req, res) </div><div class="line"> end </div><div class="line"> end </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-23"> <div class="info"> Extracted source (around line <strong>#52</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>50</span> <span>51</span> <span>52</span> <span>53</span> <span>54</span> <span>55</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def dispatch(controller, action, req, res) </div><div class="line active"> controller.dispatch(action, req, res) </div><div class="line"> end </div><div class="line"> end </div><div class="line"> </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-24"> <div class="info"> Extracted source (around line <strong>#34</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>32</span> <span>33</span> <span>34</span> <span>35</span> <span>36</span> <span>37</span> </pre> </td> <td width="100%"> <pre> <div class="line"> controller = controller req </div><div class="line"> res = controller.make_response! req </div><div class="line active"> dispatch(controller, params[:action], req, res) </div><div class="line"> rescue ActionController::RoutingError </div><div class="line"> if @raise_on_name_error </div><div class="line"> raise </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-25"> <div class="info"> Extracted source (around line <strong>#52</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>50</span> <span>51</span> <span>52</span> <span>53</span> <span>54</span> <span>55</span> </pre> </td> <td width="100%"> <pre> <div class="line"> req.path_parameters = set_params.merge parameters </div><div class="line"> </div><div class="line active"> status, headers, body = route.app.serve(req) </div><div class="line"> </div><div class="line"> if &quot;pass&quot; == headers[&quot;X-Cascade&quot;] </div><div class="line"> req.script_name = script_name </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-26"> <div class="info"> Extracted source (around line <strong>#35</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>33</span> <span>34</span> <span>35</span> <span>36</span> <span>37</span> <span>38</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def serve(req) </div><div class="line active"> find_routes(req).each do |match, parameters, route| </div><div class="line"> set_params = req.path_parameters </div><div class="line"> path_info = req.path_info </div><div class="line"> script_name = req.script_name </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-27"> <div class="info"> Extracted source (around line <strong>#35</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>33</span> <span>34</span> <span>35</span> <span>36</span> <span>37</span> <span>38</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def serve(req) </div><div class="line active"> find_routes(req).each do |match, parameters, route| </div><div class="line"> set_params = req.path_parameters </div><div class="line"> path_info = req.path_info </div><div class="line"> script_name = req.script_name </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-28"> <div class="info"> Extracted source (around line <strong>#840</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>838</span> <span>839</span> <span>840</span> <span>841</span> <span>842</span> <span>843</span> </pre> </td> <td width="100%"> <pre> <div class="line"> req = make_request(env) </div><div class="line"> req.path_info = Journey::Router::Utils.normalize_path(req.path_info) </div><div class="line active"> @router.serve(req) </div><div class="line"> end </div><div class="line"> </div><div class="line"> def recognize_path(path, environment = {}) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-29"> <div class="info"> Extracted source (around line <strong>#15</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>13</span> <span>14</span> <span>15</span> <span>16</span> <span>17</span> <span>18</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> env[RACK_TEMPFILES] ||= [] </div><div class="line active"> status, headers, body = @app.call(env) </div><div class="line"> body_proxy = BodyProxy.new(body) do </div><div class="line"> env[RACK_TEMPFILES].each(&amp;:close!) unless env[RACK_TEMPFILES].nil? </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-30"> <div class="info"> Extracted source (around line <strong>#27</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>25</span> <span>26</span> <span>27</span> <span>28</span> <span>29</span> <span>30</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def call(env) </div><div class="line active"> status, headers, body = @app.call(env) </div><div class="line"> </div><div class="line"> if etag_status?(status) &amp;&amp; etag_body?(body) &amp;&amp; !skip_caching?(headers) </div><div class="line"> original_body = body </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-31"> <div class="info"> Extracted source (around line <strong>#40</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>38</span> <span>39</span> <span>40</span> <span>41</span> <span>42</span> <span>43</span> </pre> </td> <td width="100%"> <pre> <div class="line"> [status, headers, body] </div><div class="line"> else </div><div class="line active"> @app.call(env) </div><div class="line"> end </div><div class="line"> end </div><div class="line"> </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-32"> <div class="info"> Extracted source (around line <strong>#12</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>10</span> <span>11</span> <span>12</span> <span>13</span> <span>14</span> <span>15</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def call(env) </div><div class="line active"> status, headers, body = @app.call(env) </div><div class="line"> </div><div class="line"> if env[REQUEST_METHOD] == HEAD </div><div class="line"> [ </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-33"> <div class="info"> Extracted source (around line <strong>#18</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>16</span> <span>17</span> <span>18</span> <span>19</span> <span>20</span> <span>21</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> request = ActionDispatch::Request.new env </div><div class="line active"> _, headers, _ = response = @app.call(env) </div><div class="line"> </div><div class="line"> return response unless html_response?(headers) </div><div class="line"> return response if policy_present?(headers) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-34"> <div class="info"> Extracted source (around line <strong>#266</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>264</span> <span>265</span> <span>266</span> <span>267</span> <span>268</span> <span>269</span> </pre> </td> <td width="100%"> <pre> <div class="line"> req = make_request env </div><div class="line"> prepare_session(req) </div><div class="line active"> status, headers, body = app.call(req.env) </div><div class="line"> res = Rack::Response::Raw.new status, headers </div><div class="line"> commit_session(req, res) </div><div class="line"> [status, headers, body] </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-35"> <div class="info"> Extracted source (around line <strong>#260</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>258</span> <span>259</span> <span>260</span> <span>261</span> <span>262</span> <span>263</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def call(env) </div><div class="line active"> context(env) </div><div class="line"> end </div><div class="line"> </div><div class="line"> def context(env, app = @app) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-36"> <div class="info"> Extracted source (around line <strong>#670</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>668</span> <span>669</span> <span>670</span> <span>671</span> <span>672</span> <span>673</span> </pre> </td> <td width="100%"> <pre> <div class="line"> request = ActionDispatch::Request.new env </div><div class="line"> </div><div class="line active"> status, headers, body = @app.call(env) </div><div class="line"> </div><div class="line"> if request.have_cookie_jar? </div><div class="line"> cookie_jar = request.cookie_jar </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-37"> <div class="info"> Extracted source (around line <strong>#28</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>26</span> <span>27</span> <span>28</span> <span>29</span> <span>30</span> <span>31</span> </pre> </td> <td width="100%"> <pre> <div class="line"> result = run_callbacks :call do </div><div class="line"> begin </div><div class="line active"> @app.call(env) </div><div class="line"> rescue =&gt; error </div><div class="line"> end </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-38"> <div class="info"> Extracted source (around line <strong>#98</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>96</span> <span>97</span> <span>98</span> <span>99</span> <span>100</span> <span>101</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> if callbacks.empty? </div><div class="line active"> yield if block_given? </div><div class="line"> else </div><div class="line"> env = Filters::Environment.new(self, false, nil) </div><div class="line"> next_sequence = callbacks.compile </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-39"> <div class="info"> Extracted source (around line <strong>#26</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>24</span> <span>25</span> <span>26</span> <span>27</span> <span>28</span> <span>29</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> error = nil </div><div class="line active"> result = run_callbacks :call do </div><div class="line"> begin </div><div class="line"> @app.call(env) </div><div class="line"> rescue =&gt; error </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-40"> <div class="info"> Extracted source (around line <strong>#61</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>59</span> <span>60</span> <span>61</span> <span>62</span> <span>63</span> <span>64</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> request = ActionDispatch::Request.new env </div><div class="line active"> _, headers, body = response = @app.call(env) </div><div class="line"> </div><div class="line"> if headers[&quot;X-Cascade&quot;] == &quot;pass&quot; </div><div class="line"> body.close if body.respond_to?(:close) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-41"> <div class="info"> Extracted source (around line <strong>#33</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>31</span> <span>32</span> <span>33</span> <span>34</span> <span>35</span> <span>36</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> request = ActionDispatch::Request.new env </div><div class="line active"> @app.call(env) </div><div class="line"> rescue Exception =&gt; exception </div><div class="line"> if request.show_exceptions? </div><div class="line"> render_exception(request, exception) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-42"> <div class="info"> Extracted source (around line <strong>#38</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>36</span> <span>37</span> <span>38</span> <span>39</span> <span>40</span> <span>41</span> </pre> </td> <td width="100%"> <pre> <div class="line"> instrumenter.start &quot;request.action_dispatch&quot;, request: request </div><div class="line"> logger.info { started_request_message(request) } </div><div class="line active"> status, headers, body = @app.call(env) </div><div class="line"> body = ::Rack::BodyProxy.new(body) { finish(request) } </div><div class="line"> [status, headers, body] </div><div class="line"> rescue Exception </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-43"> <div class="info"> Extracted source (around line <strong>#26</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>24</span> <span>25</span> <span>26</span> <span>27</span> <span>28</span> <span>29</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> if logger.respond_to?(:tagged) </div><div class="line active"> logger.tagged(compute_tags(request)) { call_app(request, env) } </div><div class="line"> else </div><div class="line"> call_app(request, env) </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-44"> <div class="info"> Extracted source (around line <strong>#71</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>69</span> <span>70</span> <span>71</span> <span>72</span> <span>73</span> <span>74</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def tagged(*tags) </div><div class="line active"> formatter.tagged(*tags) { yield self } </div><div class="line"> end </div><div class="line"> </div><div class="line"> def flush </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-45"> <div class="info"> Extracted source (around line <strong>#28</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>26</span> <span>27</span> <span>28</span> <span>29</span> <span>30</span> <span>31</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def tagged(*tags) </div><div class="line"> new_tags = push_tags(*tags) </div><div class="line active"> yield self </div><div class="line"> ensure </div><div class="line"> pop_tags(new_tags.size) </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-46"> <div class="info"> Extracted source (around line <strong>#71</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>69</span> <span>70</span> <span>71</span> <span>72</span> <span>73</span> <span>74</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def tagged(*tags) </div><div class="line active"> formatter.tagged(*tags) { yield self } </div><div class="line"> end </div><div class="line"> </div><div class="line"> def flush </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-47"> <div class="info"> Extracted source (around line <strong>#26</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>24</span> <span>25</span> <span>26</span> <span>27</span> <span>28</span> <span>29</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> if logger.respond_to?(:tagged) </div><div class="line active"> logger.tagged(compute_tags(request)) { call_app(request, env) } </div><div class="line"> else </div><div class="line"> call_app(request, env) </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-48"> <div class="info"> Extracted source (around line <strong>#81</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>79</span> <span>80</span> <span>81</span> <span>82</span> <span>83</span> <span>84</span> </pre> </td> <td width="100%"> <pre> <div class="line"> req = ActionDispatch::Request.new env </div><div class="line"> req.remote_ip = GetIp.new(req, check_ip, proxies) </div><div class="line active"> @app.call(req.env) </div><div class="line"> end </div><div class="line"> </div><div class="line"> # The GetIp class exists as a way to defer processing of the request data </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-49"> <div class="info"> Extracted source (around line <strong>#27</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>25</span> <span>26</span> <span>27</span> <span>28</span> <span>29</span> <span>30</span> </pre> </td> <td width="100%"> <pre> <div class="line"> req = ActionDispatch::Request.new env </div><div class="line"> req.request_id = make_request_id(req.x_request_id) </div><div class="line active"> @app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id } </div><div class="line"> end </div><div class="line"> </div><div class="line"> private </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-50"> <div class="info"> Extracted source (around line <strong>#24</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>22</span> <span>23</span> <span>24</span> <span>25</span> <span>26</span> <span>27</span> </pre> </td> <td width="100%"> <pre> <div class="line"> end </div><div class="line"> </div><div class="line active"> @app.call(env) </div><div class="line"> end </div><div class="line"> </div><div class="line"> def method_override(env) </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-51"> <div class="info"> Extracted source (around line <strong>#22</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>20</span> <span>21</span> <span>22</span> <span>23</span> <span>24</span> <span>25</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> start_time = Utils.clock_time </div><div class="line active"> status, headers, body = @app.call(env) </div><div class="line"> headers = Utils::HeaderHash[headers] </div><div class="line"> </div><div class="line"> request_time = Utils.clock_time - start_time </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-52"> <div class="info"> Extracted source (around line <strong>#29</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>27</span> <span>28</span> <span>29</span> <span>30</span> <span>31</span> <span>32</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new) </div><div class="line active"> response = @app.call(env) </div><div class="line"> response[2] = ::Rack::BodyProxy.new(response[2]) do </div><div class="line"> LocalCacheRegistry.set_cache_for(local_cache_key, nil) </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-53"> <div class="info"> Extracted source (around line <strong>#14</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>12</span> <span>13</span> <span>14</span> <span>15</span> <span>16</span> <span>17</span> </pre> </td> <td width="100%"> <pre> <div class="line"> state = @executor.run! </div><div class="line"> begin </div><div class="line active"> response = @app.call(env) </div><div class="line"> returned = response &lt;&lt; ::Rack::BodyProxy.new(response.pop) { state.complete! } </div><div class="line"> ensure </div><div class="line"> state.complete! unless returned </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-54"> <div class="info"> Extracted source (around line <strong>#127</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>125</span> <span>126</span> <span>127</span> <span>128</span> <span>129</span> <span>130</span> </pre> </td> <td width="100%"> <pre> <div class="line"> end </div><div class="line"> </div><div class="line active"> @app.call(req.env) </div><div class="line"> end </div><div class="line"> end </div><div class="line">end </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-55"> <div class="info"> Extracted source (around line <strong>#110</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>108</span> <span>109</span> <span>110</span> <span>111</span> <span>112</span> <span>113</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> def call(env) </div><div class="line active"> status, headers, body = @app.call(env) </div><div class="line"> if body.respond_to?(:to_path) </div><div class="line"> case type = variation(env) </div><div class="line"> when &#39;X-Accel-Redirect&#39; </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-56"> <div class="info"> Extracted source (around line <strong>#524</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>522</span> <span>523</span> <span>524</span> <span>525</span> <span>526</span> <span>527</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> req = build_request env </div><div class="line active"> app.call req.env </div><div class="line"> end </div><div class="line"> </div><div class="line"> # Defines additional Rack env configuration that is added on each call. </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-57"> <div class="info"> Extracted source (around line <strong>#228</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>226</span> <span>227</span> <span>228</span> <span>229</span> <span>230</span> <span>231</span> </pre> </td> <td width="100%"> <pre> <div class="line"> def call(env) </div><div class="line"> env[Const::PUMA_CONFIG] = @config </div><div class="line active"> @app.call(env) </div><div class="line"> end </div><div class="line"> end </div><div class="line"> </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-58"> <div class="info"> Extracted source (around line <strong>#718</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>716</span> <span>717</span> <span>718</span> <span>719</span> <span>720</span> <span>721</span> </pre> </td> <td width="100%"> <pre> <div class="line"> begin </div><div class="line"> begin </div><div class="line active"> status, headers, res_body = @app.call(env) </div><div class="line"> </div><div class="line"> return :async if req.hijacked </div><div class="line"> </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-59"> <div class="info"> Extracted source (around line <strong>#472</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>470</span> <span>471</span> <span>472</span> <span>473</span> <span>474</span> <span>475</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> while true </div><div class="line active"> case handle_request(client, buffer) </div><div class="line"> when false </div><div class="line"> return </div><div class="line"> when :async </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-60"> <div class="info"> Extracted source (around line <strong>#328</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>326</span> <span>327</span> <span>328</span> <span>329</span> <span>330</span> <span>331</span> </pre> </td> <td width="100%"> <pre> <div class="line"> else </div><div class="line"> if process_now </div><div class="line active"> process_client client, buffer </div><div class="line"> else </div><div class="line"> client.set_timeout @first_data_timeout </div><div class="line"> @reactor.add client </div> </pre> </td> </tr> </table> </div> </div> <div class="source hidden" id="frame-source-61"> <div class="info"> Extracted source (around line <strong>#134</strong>): </div> <div class="data"> <table cellpadding="0" cellspacing="0" class="lines"> <tr> <td> <pre class="line_numbers"> <span>132</span> <span>133</span> <span>134</span> <span>135</span> <span>136</span> <span>137</span> </pre> </td> <td width="100%"> <pre> <div class="line"> </div><div class="line"> begin </div><div class="line active"> block.call(work, *extra) </div><div class="line"> rescue Exception =&gt; e </div><div class="line"> STDERR.puts &quot;Error reached top of thread-pool: #{e.message} (#{e.class})&quot; </div><div class="line"> end </div> </pre> </td> </tr> </table> </div> </div> <p><code>Rails.root: /app</code></p> <div id="traces"> <a href="#" onclick="hide(&#39;Framework-Trace&#39;);hide(&#39;Full-Trace&#39;);show(&#39;Application-Trace&#39;);; return false;">Application Trace</a> | <a href="#" onclick="hide(&#39;Application-Trace&#39;);hide(&#39;Full-Trace&#39;);show(&#39;Framework-Trace&#39;);; return false;">Framework Trace</a> | <a href="#" onclick="hide(&#39;Application-Trace&#39;);hide(&#39;Framework-Trace&#39;);show(&#39;Full-Trace&#39;);; return false;">Full Trace</a> <div id="Application-Trace" style="display: block;"> <pre><code><a class="trace-frames" data-frame-id="1" href="#">app/controllers/access_tokens_controller.rb:21:in `set_platform&#39;</a><br></code></pre> </div> <div id="Framework-Trace" style="display: none;"> <pre><code><a class="trace-frames" data-frame-id="0" href="#">activerecord (5.2.4.6) lib/active_record/core.rb:177:in `find&#39;</a><br><a class="trace-frames" data-frame-id="2" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:426:in `block in make_lambda&#39;</a><br><a class="trace-frames" data-frame-id="3" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:198:in `block (2 levels) in halting&#39;</a><br><a class="trace-frames" data-frame-id="4" href="#">actionpack (5.2.4.6) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in &lt;module:Callbacks&gt;&#39;</a><br><a class="trace-frames" data-frame-id="5" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:199:in `block in halting&#39;</a><br><a class="trace-frames" data-frame-id="6" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:513:in `block in invoke_before&#39;</a><br><a class="trace-frames" data-frame-id="7" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:513:in `each&#39;</a><br><a class="trace-frames" data-frame-id="8" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:513:in `invoke_before&#39;</a><br><a class="trace-frames" data-frame-id="9" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:131:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="10" href="#">actionpack (5.2.4.6) lib/abstract_controller/callbacks.rb:41:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="11" href="#">actionpack (5.2.4.6) lib/action_controller/metal/rescue.rb:22:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="12" href="#">actionpack (5.2.4.6) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action&#39;</a><br><a class="trace-frames" data-frame-id="13" href="#">activesupport (5.2.4.6) lib/active_support/notifications.rb:168:in `block in instrument&#39;</a><br><a class="trace-frames" data-frame-id="14" href="#">activesupport (5.2.4.6) lib/active_support/notifications/instrumenter.rb:23:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="15" href="#">activesupport (5.2.4.6) lib/active_support/notifications.rb:168:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="16" href="#">actionpack (5.2.4.6) lib/action_controller/metal/instrumentation.rb:32:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="17" href="#">actionpack (5.2.4.6) lib/action_controller/metal/params_wrapper.rb:256:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="18" href="#">activerecord (5.2.4.6) lib/active_record/railties/controller_runtime.rb:24:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="19" href="#">actionpack (5.2.4.6) lib/abstract_controller/base.rb:134:in `process&#39;</a><br><a class="trace-frames" data-frame-id="20" href="#">actionview (5.2.4.6) lib/action_view/rendering.rb:32:in `process&#39;</a><br><a class="trace-frames" data-frame-id="21" href="#">actionpack (5.2.4.6) lib/action_controller/metal.rb:191:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="22" href="#">actionpack (5.2.4.6) lib/action_controller/metal.rb:252:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="23" href="#">actionpack (5.2.4.6) lib/action_dispatch/routing/route_set.rb:52:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="24" href="#">actionpack (5.2.4.6) lib/action_dispatch/routing/route_set.rb:34:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="25" href="#">actionpack (5.2.4.6) lib/action_dispatch/journey/router.rb:52:in `block in serve&#39;</a><br><a class="trace-frames" data-frame-id="26" href="#">actionpack (5.2.4.6) lib/action_dispatch/journey/router.rb:35:in `each&#39;</a><br><a class="trace-frames" data-frame-id="27" href="#">actionpack (5.2.4.6) lib/action_dispatch/journey/router.rb:35:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="28" href="#">actionpack (5.2.4.6) lib/action_dispatch/routing/route_set.rb:840:in `call&#39;</a><br><a class="trace-frames" data-frame-id="29" href="#">rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call&#39;</a><br><a class="trace-frames" data-frame-id="30" href="#">rack (2.2.3) lib/rack/etag.rb:27:in `call&#39;</a><br><a class="trace-frames" data-frame-id="31" href="#">rack (2.2.3) lib/rack/conditional_get.rb:40:in `call&#39;</a><br><a class="trace-frames" data-frame-id="32" href="#">rack (2.2.3) lib/rack/head.rb:12:in `call&#39;</a><br><a class="trace-frames" data-frame-id="33" href="#">actionpack (5.2.4.6) lib/action_dispatch/http/content_security_policy.rb:18:in `call&#39;</a><br><a class="trace-frames" data-frame-id="34" href="#">rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context&#39;</a><br><a class="trace-frames" data-frame-id="35" href="#">rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call&#39;</a><br><a class="trace-frames" data-frame-id="36" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/cookies.rb:670:in `call&#39;</a><br><a class="trace-frames" data-frame-id="37" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="38" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:98:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="39" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/callbacks.rb:26:in `call&#39;</a><br><a class="trace-frames" data-frame-id="40" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call&#39;</a><br><a class="trace-frames" data-frame-id="41" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call&#39;</a><br><a class="trace-frames" data-frame-id="42" href="#">railties (5.2.4.6) lib/rails/rack/logger.rb:38:in `call_app&#39;</a><br><a class="trace-frames" data-frame-id="43" href="#">railties (5.2.4.6) lib/rails/rack/logger.rb:26:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="44" href="#">activesupport (5.2.4.6) lib/active_support/tagged_logging.rb:71:in `block in tagged&#39;</a><br><a class="trace-frames" data-frame-id="45" href="#">activesupport (5.2.4.6) lib/active_support/tagged_logging.rb:28:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="46" href="#">activesupport (5.2.4.6) lib/active_support/tagged_logging.rb:71:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="47" href="#">railties (5.2.4.6) lib/rails/rack/logger.rb:26:in `call&#39;</a><br><a class="trace-frames" data-frame-id="48" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/remote_ip.rb:81:in `call&#39;</a><br><a class="trace-frames" data-frame-id="49" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/request_id.rb:27:in `call&#39;</a><br><a class="trace-frames" data-frame-id="50" href="#">rack (2.2.3) lib/rack/method_override.rb:24:in `call&#39;</a><br><a class="trace-frames" data-frame-id="51" href="#">rack (2.2.3) lib/rack/runtime.rb:22:in `call&#39;</a><br><a class="trace-frames" data-frame-id="52" href="#">activesupport (5.2.4.6) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call&#39;</a><br><a class="trace-frames" data-frame-id="53" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/executor.rb:14:in `call&#39;</a><br><a class="trace-frames" data-frame-id="54" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/static.rb:127:in `call&#39;</a><br><a class="trace-frames" data-frame-id="55" href="#">rack (2.2.3) lib/rack/sendfile.rb:110:in `call&#39;</a><br><a class="trace-frames" data-frame-id="56" href="#">railties (5.2.4.6) lib/rails/engine.rb:524:in `call&#39;</a><br><a class="trace-frames" data-frame-id="57" href="#">puma (4.3.8) lib/puma/configuration.rb:228:in `call&#39;</a><br><a class="trace-frames" data-frame-id="58" href="#">puma (4.3.8) lib/puma/server.rb:718:in `handle_request&#39;</a><br><a class="trace-frames" data-frame-id="59" href="#">puma (4.3.8) lib/puma/server.rb:472:in `process_client&#39;</a><br><a class="trace-frames" data-frame-id="60" href="#">puma (4.3.8) lib/puma/server.rb:328:in `block in run&#39;</a><br><a class="trace-frames" data-frame-id="61" href="#">puma (4.3.8) lib/puma/thread_pool.rb:134:in `block in spawn_thread&#39;</a><br></code></pre> </div> <div id="Full-Trace" style="display: none;"> <pre><code><a class="trace-frames" data-frame-id="0" href="#">activerecord (5.2.4.6) lib/active_record/core.rb:177:in `find&#39;</a><br><a class="trace-frames" data-frame-id="1" href="#">app/controllers/access_tokens_controller.rb:21:in `set_platform&#39;</a><br><a class="trace-frames" data-frame-id="2" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:426:in `block in make_lambda&#39;</a><br><a class="trace-frames" data-frame-id="3" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:198:in `block (2 levels) in halting&#39;</a><br><a class="trace-frames" data-frame-id="4" href="#">actionpack (5.2.4.6) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in &lt;module:Callbacks&gt;&#39;</a><br><a class="trace-frames" data-frame-id="5" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:199:in `block in halting&#39;</a><br><a class="trace-frames" data-frame-id="6" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:513:in `block in invoke_before&#39;</a><br><a class="trace-frames" data-frame-id="7" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:513:in `each&#39;</a><br><a class="trace-frames" data-frame-id="8" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:513:in `invoke_before&#39;</a><br><a class="trace-frames" data-frame-id="9" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:131:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="10" href="#">actionpack (5.2.4.6) lib/abstract_controller/callbacks.rb:41:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="11" href="#">actionpack (5.2.4.6) lib/action_controller/metal/rescue.rb:22:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="12" href="#">actionpack (5.2.4.6) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action&#39;</a><br><a class="trace-frames" data-frame-id="13" href="#">activesupport (5.2.4.6) lib/active_support/notifications.rb:168:in `block in instrument&#39;</a><br><a class="trace-frames" data-frame-id="14" href="#">activesupport (5.2.4.6) lib/active_support/notifications/instrumenter.rb:23:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="15" href="#">activesupport (5.2.4.6) lib/active_support/notifications.rb:168:in `instrument&#39;</a><br><a class="trace-frames" data-frame-id="16" href="#">actionpack (5.2.4.6) lib/action_controller/metal/instrumentation.rb:32:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="17" href="#">actionpack (5.2.4.6) lib/action_controller/metal/params_wrapper.rb:256:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="18" href="#">activerecord (5.2.4.6) lib/active_record/railties/controller_runtime.rb:24:in `process_action&#39;</a><br><a class="trace-frames" data-frame-id="19" href="#">actionpack (5.2.4.6) lib/abstract_controller/base.rb:134:in `process&#39;</a><br><a class="trace-frames" data-frame-id="20" href="#">actionview (5.2.4.6) lib/action_view/rendering.rb:32:in `process&#39;</a><br><a class="trace-frames" data-frame-id="21" href="#">actionpack (5.2.4.6) lib/action_controller/metal.rb:191:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="22" href="#">actionpack (5.2.4.6) lib/action_controller/metal.rb:252:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="23" href="#">actionpack (5.2.4.6) lib/action_dispatch/routing/route_set.rb:52:in `dispatch&#39;</a><br><a class="trace-frames" data-frame-id="24" href="#">actionpack (5.2.4.6) lib/action_dispatch/routing/route_set.rb:34:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="25" href="#">actionpack (5.2.4.6) lib/action_dispatch/journey/router.rb:52:in `block in serve&#39;</a><br><a class="trace-frames" data-frame-id="26" href="#">actionpack (5.2.4.6) lib/action_dispatch/journey/router.rb:35:in `each&#39;</a><br><a class="trace-frames" data-frame-id="27" href="#">actionpack (5.2.4.6) lib/action_dispatch/journey/router.rb:35:in `serve&#39;</a><br><a class="trace-frames" data-frame-id="28" href="#">actionpack (5.2.4.6) lib/action_dispatch/routing/route_set.rb:840:in `call&#39;</a><br><a class="trace-frames" data-frame-id="29" href="#">rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call&#39;</a><br><a class="trace-frames" data-frame-id="30" href="#">rack (2.2.3) lib/rack/etag.rb:27:in `call&#39;</a><br><a class="trace-frames" data-frame-id="31" href="#">rack (2.2.3) lib/rack/conditional_get.rb:40:in `call&#39;</a><br><a class="trace-frames" data-frame-id="32" href="#">rack (2.2.3) lib/rack/head.rb:12:in `call&#39;</a><br><a class="trace-frames" data-frame-id="33" href="#">actionpack (5.2.4.6) lib/action_dispatch/http/content_security_policy.rb:18:in `call&#39;</a><br><a class="trace-frames" data-frame-id="34" href="#">rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context&#39;</a><br><a class="trace-frames" data-frame-id="35" href="#">rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call&#39;</a><br><a class="trace-frames" data-frame-id="36" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/cookies.rb:670:in `call&#39;</a><br><a class="trace-frames" data-frame-id="37" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="38" href="#">activesupport (5.2.4.6) lib/active_support/callbacks.rb:98:in `run_callbacks&#39;</a><br><a class="trace-frames" data-frame-id="39" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/callbacks.rb:26:in `call&#39;</a><br><a class="trace-frames" data-frame-id="40" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call&#39;</a><br><a class="trace-frames" data-frame-id="41" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call&#39;</a><br><a class="trace-frames" data-frame-id="42" href="#">railties (5.2.4.6) lib/rails/rack/logger.rb:38:in `call_app&#39;</a><br><a class="trace-frames" data-frame-id="43" href="#">railties (5.2.4.6) lib/rails/rack/logger.rb:26:in `block in call&#39;</a><br><a class="trace-frames" data-frame-id="44" href="#">activesupport (5.2.4.6) lib/active_support/tagged_logging.rb:71:in `block in tagged&#39;</a><br><a class="trace-frames" data-frame-id="45" href="#">activesupport (5.2.4.6) lib/active_support/tagged_logging.rb:28:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="46" href="#">activesupport (5.2.4.6) lib/active_support/tagged_logging.rb:71:in `tagged&#39;</a><br><a class="trace-frames" data-frame-id="47" href="#">railties (5.2.4.6) lib/rails/rack/logger.rb:26:in `call&#39;</a><br><a class="trace-frames" data-frame-id="48" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/remote_ip.rb:81:in `call&#39;</a><br><a class="trace-frames" data-frame-id="49" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/request_id.rb:27:in `call&#39;</a><br><a class="trace-frames" data-frame-id="50" href="#">rack (2.2.3) lib/rack/method_override.rb:24:in `call&#39;</a><br><a class="trace-frames" data-frame-id="51" href="#">rack (2.2.3) lib/rack/runtime.rb:22:in `call&#39;</a><br><a class="trace-frames" data-frame-id="52" href="#">activesupport (5.2.4.6) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call&#39;</a><br><a class="trace-frames" data-frame-id="53" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/executor.rb:14:in `call&#39;</a><br><a class="trace-frames" data-frame-id="54" href="#">actionpack (5.2.4.6) lib/action_dispatch/middleware/static.rb:127:in `call&#39;</a><br><a class="trace-frames" data-frame-id="55" href="#">rack (2.2.3) lib/rack/sendfile.rb:110:in `call&#39;</a><br><a class="trace-frames" data-frame-id="56" href="#">railties (5.2.4.6) lib/rails/engine.rb:524:in `call&#39;</a><br><a class="trace-frames" data-frame-id="57" href="#">puma (4.3.8) lib/puma/configuration.rb:228:in `call&#39;</a><br><a class="trace-frames" data-frame-id="58" href="#">puma (4.3.8) lib/puma/server.rb:718:in `handle_request&#39;</a><br><a class="trace-frames" data-frame-id="59" href="#">puma (4.3.8) lib/puma/server.rb:472:in `process_client&#39;</a><br><a class="trace-frames" data-frame-id="60" href="#">puma (4.3.8) lib/puma/server.rb:328:in `block in run&#39;</a><br><a class="trace-frames" data-frame-id="61" href="#">puma (4.3.8) lib/puma/thread_pool.rb:134:in `block in spawn_thread&#39;</a><br></code></pre> </div> <script type="text/javascript"> var traceFrames = document.getElementsByClassName('trace-frames'); var selectedFrame, currentSource = document.getElementById('frame-source-0'); // Add click listeners for all stack frames for (var i = 0; i < traceFrames.length; i++) { traceFrames[i].addEventListener('click', function(e) { e.preventDefault(); var target = e.target; var frame_id = target.dataset.frameId; if (selectedFrame) { selectedFrame.className = selectedFrame.className.replace("selected", ""); } target.className += " selected"; selectedFrame = target; // Change the extracted source code changeSourceExtract(frame_id); }); function changeSourceExtract(frame_id) { var el = document.getElementById('frame-source-' + frame_id); if (currentSource && el) { currentSource.className += " hidden"; el.className = el.className.replace(" hidden", ""); currentSource = el; } } } </script> </div> <h2 style="margin-top: 30px">Request</h2> <p><b>Parameters</b>:</p> <pre>{&quot;client_assertion&quot;=&gt; &quot;eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Indnbk42QjdWZExuVzNOWVZvYWtmRVZJTlR1SVZKSUtMaGhjcHBLUjdORkkiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJUb29sVEVTVDAwMSIsInN1YiI6ImFiYzEyMyIsImF1ZCI6Imh0dHBzOi8vbHRpLXJpLmltc2dsb2JhbC5vcmcvcGxhdGZvcm1zLzIwMTMvYWNjZXNzX3Rva2VucyIsImlhdCI6MTcxMTY0MDEwNSwiZXhwIjoxNzExNjQwNDA1LCJqdGkiOiI4NDAyMjhiNTFiMDhmNGY0YjFhMyJ9.ZATS7uv0iaNF106pZBIi1hRS1Bylg1TQq_YnyMDV-IVhzFrSMnG1nQPu-uw94U70v6xDmUxcQ5sGj2JKTKCukDhW_arApMYCEkI0p4RVDvoStMo7mQE5C-cgApMtfvpOnS224ccRySQz5-s0CJPtbA4oItcTiI8_YpCrUWzzuQ6dACfIQrFYoLE_mgIwSttTPAA-gEHZsrbYn_gj4aVVmxCmvH94nzNDr6PHs2biWx1BQv83M-3l2CCOT_kBioIQu6-krAbC9dgppe8oet1zs8wX5J39s7iyAEoPCWuH9nQkAy6FZSTuLdc4qP39vvQBizlivE8dAg_prPiaWcjD0A&quot;, &quot;client_assertion_type&quot;=&gt;&quot;urn:ietf:params:oauth:client-assertion-type:jwt-bearer&quot;, &quot;grant_type&quot;=&gt;&quot;client_credentials&quot;, &quot;scope&quot;=&gt; &quot;https://purl.imsglobal.org/spec/lti-ags/scope/lineitem https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly https://purl.imsglobal.org/spec/lti-ags/scope/score https://purl.imsglobal.org/spec/lti-ap/scope/control.all https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly https://purl.imsglobal.org/spec/lti-ap/scope/control.all&quot;, &quot;platform_id&quot;=&gt;&quot;2013&quot;} </pre> <div class="details"> <div class="summary"><a href="#" onclick="return toggleSessionDump()">Toggle session dump</a></div> <div id="session_dump" style="display:none"><pre></pre></div> </div> <div class="details"> <div class="summary"><a href="#" onclick="return toggleEnvDump()">Toggle env dump</a></div> <div id="env_dump" style="display:none"><pre>GATEWAY_INTERFACE: &quot;CGI/1.2&quot; HTTP_ACCEPT: &quot;*/*&quot; HTTP_ACCEPT_ENCODING: &quot;gzip;q=1.0,deflate;q=0.6,identity;q=0.3&quot; HTTP_VERSION: &quot;HTTP/1.1&quot; HTTP_X_FORWARDED_FOR: &quot;10.24.0.1&quot; HTTP_X_FORWARDED_HOST: &quot;lti-ri.imsglobal.org&quot; HTTP_X_REQUEST_ID: &quot;3f1171cfafe82f8d2d5d450b4e729507&quot; ORIGINAL_SCRIPT_NAME: &quot;&quot; REMOTE_ADDR: &quot;10.24.0.8&quot; SERVER_NAME: &quot;lti-ri.imsglobal.org&quot; SERVER_PROTOCOL: &quot;HTTP/1.1&quot;</pre></div> </div> <h2 style="margin-top: 30px">Response</h2> <p><b>Headers</b>:</p> <pre>None</pre> </div> </body> </html> '

Extracted source (around line #26):
24
25
26
27
28
29
              
request = conn.post @tool.oauth2_url, body
JSON.parse(request.body)
end
def body

Rails.root: /app

Application Trace | Framework Trace | Full Trace

Request

Parameters:

{"tool_id"=>"1851", "id"=>"14014"}

Response

Headers:

None