<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="36705" data-post-id="36705">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kaa.python" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kaa.python
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="peerreynders" data-post="21" data-topic="5987" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/peerreynders/48/5826_2.png" class="avatar"> peerreynders:</div>
<blockquote>
<p>The tasks take however long they need - no “iterations” involved.</p>
</blockquote>
</aside>
<ol>
<li>
<p>And I don’t want it to take however long it takes because a remote server might go down and what-not. And a task will then have to wait for it forever?</p>
</li>
<li>
<p>Iterations are required because I’m polling a server.</p>
</li>
</ol> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36705" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-36705" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36705"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="36707" data-post-id="36707">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="peerreynders" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/peerreynders/120/5826_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  peerreynders
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<ul>
<li>When you start a task schedule a timeout with <a href="https://hexdocs.pm/elixir/Process.html#send_after/4" rel="noopener nofollow ugc"><code>Process.send_after/2</code></a> including the <code>task.pid</code> in the message</li>
<li>Store the timer reference together with the task in a tuple in the Map</li>
<li>When the task completes use <a href="https://hexdocs.pm/elixir/Process.html#cancel_timer/1" rel="noopener nofollow ugc"><code>Process.cancel_timer/1</code></a> to cancel the timer.</li>
<li>When the timer message arrives first use <code>Task.shutdown task, :brutal_kill</code> to terminate the task.</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36707" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-36707" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36707"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="36713" data-post-id="36713">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kaa.python" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kaa.python
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>why not to use a) task.await and handle :exit b) or task.yield c) or spawn?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36713" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-36713" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36713"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="36715" data-post-id="36715">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="NobbZ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/NobbZ/120/27235_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  NobbZ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>To make sure you do understand this correctly!</p>
<p>When you send an HTTP-request in the Task and have a timeout of 5 seconds in Task.await but the request takes 10 seconds to process, the request will be done until its very end. AND it will send it answer to its owner anyway. They will be in your inbox and waiting to be processed, regardless of you still want them. Also all sideeffects on the HTTP-endpoint will happen, If you really need a timout over HTTP-requests, use a HTTP library which provides you necessary control over the connection. This will also make sure that the timeout will only start AFTER the request has actuelly been send and not before even starting to construct it. Only milliseconds, but those can become significant!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36715" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-36715" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36715"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="36720" data-post-id="36720">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="peerreynders" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/peerreynders/120/5826_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  peerreynders
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<ol>
<li>To point it out again, <a href="https://hexdocs.pm/elixir/Task.html#await/2-compatibility-with-otp-behaviours" rel="noopener nofollow ugc"><code>Task.await</code> actually states</a>:</li>
</ol>
<blockquote>
<p><strong>Compatibility with OTP behaviours</strong><br>
It is not recommended to <code>await</code> a long-running task inside an OTP behaviour such as <code>GenServer</code>. Instead, you should match on the message coming from a task inside your <code>GenServer.handle_info/2</code> callback.</p>
</blockquote>
<ol start="2">
<li>The only thing that times out is the <code>await</code> process - the <a href="https://hexdocs.pm/elixir/Task.html#await/2" rel="noopener nofollow ugc">task process it still running</a>.</li>
</ol>
<blockquote>
<p>If the timeout is exceeded, <code>await</code> will exit; however, <em><strong>the task will continue to run</strong></em>.</p>
</blockquote> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36720" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-36720" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36720"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="36756" data-post-id="36756">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kaa.python" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kaa.python
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="NobbZ" data-post="25" data-topic="5987">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/nobbz/48/27235_2.png" class="avatar"> NobbZ:</div>
<blockquote>
<p>When you send an HTTP-request in the Task and have a timeout of 5 seconds in Task.await but the request takes 10 seconds to process, the request will be done until its very end. AND it will send it answer to its owner anyway. They will be in your inbox and waiting to be processed, regardless of you still want them. Also all sideeffects on the HTTP-endpoint will happen, If you really need a timout over HTTP-requests, use a HTTP library which provides you necessary control over the connection. This will also make sure that the timeout will only start AFTER the request has actuelly been send and not before even starting to construct it. Only milliseconds, but those can become significant!</p>
</blockquote>
</aside>
<p>Ok. How can I do this:</p>
<p>Send an http request.</p>
<ul>
<li>a) if an answer arrives within N seconds – good, process it.</li>
<li>b) if not, forget about it completely – not a big deal because I’ll send another one in M seconds. How can I process or reject a message or all messages if it/they arrives after the timeout?</li>
</ul>
<p>Note that I need to return something from “do_work” for GenServer so that I can modify its state/data: in my case – either the same state or a state with N - M elements or <span class="chcklst-box fa fa-square-o"></span>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36756" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-36756" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36756"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="36758" data-post-id="36758">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kaa.python" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kaa.python
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="peerreynders" data-post="26" data-topic="5987">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/peerreynders/48/5826_2.png" class="avatar"> peerreynders:</div>
<blockquote>
<p>Instead, you should match on the message coming from a task inside your GenServer.handle_info/2 callback.</p>
</blockquote>
</aside>
<p>Got it.<br>
Should I use spawn?<br>
What message should I handle inside   GenServer.handle_info/2 for an answer coming from an http request? Which can arrive after a timeout as well.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36758" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-36758" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36758"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="36783" data-post-id="36783">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="NobbZ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/NobbZ/120/27235_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  NobbZ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Your HTTP library should be aware of a timeout option, use it. How your application can then differentiate between a timeout and a regular return value does totally depend on the library you use.</p>
<p>What you can return on a timeout does totally depend on your application.</p>
<p>The important bits are…</p>
<ul>
<li>… to drop Task, because it involves coding a lot of stuff into your GenServer which doesn’t belong there</li>
<li>… to do not do the request in the GenServers process to not block it. How that can roughly look like has been shown to you</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36783" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-36783" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36783"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="36791" data-post-id="36791">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kaa.python" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kaa.python
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<ol>
<li>
<p>In general, if my library doesn’t deal with timeout and or if timeout occurs in Task.await, how can I process in  handle_info? How can I know that :exit has come from one of Task.await because of timeout? How can I flush all messages that’ll arive to the mailbox of GenServer after timeout from Task.await that have timed out?</p>
</li>
<li>
<p>what do you mean by drop Task?</p>
</li>
<li>
<p>HttpPoison does have timeout, but it’s described briefly and still I’ll need to be able to handle a timeout from Task.await.</p>
</li>
</ol> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36791" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-36791" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36791"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="36801" data-post-id="36801">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="NobbZ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/NobbZ/120/27235_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  NobbZ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<ol>
<li>[…]</li>
</ol>
</blockquote>
<p>Obselete after reading my next answer.</p>
<blockquote>
<ol start="2">
<li>what do you mean by drop Task?</li>
</ol>
</blockquote>
<p>Exactly this. Drop it, throw it away, do not use it, forget it exists.</p>
<p>Using Tasks timout in any way in your current constellation will cause you a lot of trouble. Just use bare processes as shown and explained before.</p>
<blockquote>
<ol start="3">
<li>HttpPoison does have timeout, but it’s described briefly and still I’ll need to be able to handle a timeout from Task.await.</li>
</ol>
</blockquote>
<p>If you were dropping the idea of using a Task as I told you many times before, there were no need to talk about Tasks timeout here.</p>
<p>HTTPoison will probably return a simple <code>{:error, :timeout}</code> or similar, just try it.</p>
<hr>
<p>You can “flush” your processes inbox by simply receiving the messages and doing nothing on them, but you should be very careful when doing this to not drop important messages. In a genserver you can do similar in handle_info.</p>
<hr>
<p>As a last note of warning. Not using HTTPoisons timeout but rather trying to build something around Tasks may get you into huge trouble by either polluting your processes inbox by irrelevant messages which do cost processing just to drop them. This is time where your GenServer is not available for more urgent requests!</p>
<p>Also if you do the cancellation of Tasks wrong it may happen, that HTTPoison is not able to check its worker process back to the connection pool, meaning that you will eventually run out of available connections earlier or later depending on how often a timeout happens.</p>
<p>Also HTTPosisons notion of a timeout is different than Tasks. Tasks timout will start after spanwing the tasks worker process, while HTTPoisons timeout will only start after the request has been prepared and it is trying to establish the connection. As I already said, there are probably only milliseconds of difference, but those may be significant.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36801" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/task-await-terminates-genserver-because-of-timeout-how-to-fix/5987/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-36801" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36801"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #31"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/5987/load_more?page=4">Load more posts</a>
</div></template></turbo-stream>